{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ZERO_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"operators","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recordExists","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"records","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"resolver","type":"address","internalType":"address"},{"name":"ttl","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"resolver","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOwner","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"},{"name":"_resolver","type":"address","internalType":"address"},{"name":"_ttl","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setResolver","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"},{"name":"_resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSubnodeOwner","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"},{"name":"_label","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"setSubnodeRecord","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"},{"name":"_label","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"},{"name":"_resolver","type":"address","internalType":"address"},{"name":"_ttl","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTTL","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"},{"name":"_ttl","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ttl","inputs":[{"name":"_node","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"NewOwner","inputs":[{"name":"node","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"label","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NewResolver","inputs":[{"name":"node","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"resolver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NewTTL","inputs":[{"name":"node","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"ttl","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"node","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb580546001600160a01b03191633179055610b1f806100596000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80632637588e11610097578063a22cb46511610066578063a22cb465146102cf578063cf408823146102e2578063e985e9c5146102f5578063f79fe5381461033157600080fd5b80632637588e14610263578063538ba4f9146102a15780635b0fc9c3146102a95780635ef2c7f0146102bc57600080fd5b806306ab5923116100d357806306ab5923146101cd57806314ab9038146101ee57806316a25cbd146102035780631896f70a1461025057600080fd5b80630178b8bf146100fa57806301e647251461014357806302571be3146101ba575b600080fd5b6101266101083660046108e7565b6000908152602081905260409020600101546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b61018a6101513660046108e7565b600060208190529081526040902080546001909101546001600160a01b0391821691811690600160a01b900467ffffffffffffffff1683565b604080516001600160a01b03948516815293909216602084015267ffffffffffffffff169082015260600161013a565b6101266101c83660046108e7565b61035c565b6101e06101db36600461091c565b61038a565b60405190815260200161013a565b6102016101fc366004610969565b610476565b005b6102376102113660046108e7565b600090815260208190526040902060010154600160a01b900467ffffffffffffffff1690565b60405167ffffffffffffffff909116815260200161013a565b61020161025e366004610995565b61055c565b6102916102713660046109b8565b600160209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161013a565b610126600081565b6102016102b7366004610995565b610634565b6102016102ca3660046109e2565b6106e9565b6102016102dd366004610a39565b61070b565b6102016102f0366004610a75565b610777565b6102916103033660046109b8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61029161033f3660046108e7565b6000908152602081905260409020546001600160a01b0316151590565b6000818152602081905260408120546001600160a01b03163081036103845750600092915050565b92915050565b60008381526020819052604081205484906001600160a01b0316338114806103d557506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6103fa5760405162461bcd60e51b81526004016103f190610ac2565b60405180910390fd5b6040805160208082018990528183018890528251808303840181526060909201909252805191012061042c8186610792565b6040516001600160a01b0386168152869088907fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829060200160405180910390a39695505050505050565b60008281526020819052604090205482906001600160a01b0316338114806104c157506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6104dd5760405162461bcd60e51b81526004016103f190610ac2565b60405167ffffffffffffffff8416815284907f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa689060200160405180910390a25050600091825260208290526040909120600101805467ffffffffffffffff909216600160a01b0267ffffffffffffffff60a01b19909216919091179055565b60008281526020819052604090205482906001600160a01b0316338114806105a757506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6105c35760405162461bcd60e51b81526004016103f190610ac2565b6040516001600160a01b038416815284907f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a09060200160405180910390a2505060009182526020829052604090912060010180546001600160a01b0319166001600160a01b03909216919091179055565b60008281526020819052604090205482906001600160a01b03163381148061067f57506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b61069b5760405162461bcd60e51b81526004016103f190610ac2565b6106a58484610792565b6040516001600160a01b038416815284907fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2669060200160405180910390a250505050565b60006106f686868661038a565b90506107038184846107c0565b505050505050565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6107818484610634565b61078c8483836107c0565b50505050565b60009182526020829052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000838152602081905260409020600101546001600160a01b03838116911614610846576000838152602081815260409182902060010180546001600160a01b0319166001600160a01b038616908117909155915191825284917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0910160405180910390a25b60008381526020819052604090206001015467ffffffffffffffff828116600160a01b90920416146108e25760008381526020818152604091829020600101805467ffffffffffffffff60a01b1916600160a01b67ffffffffffffffff861690810291909117909155915191825284917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68910160405180910390a25b505050565b6000602082840312156108f957600080fd5b5035919050565b80356001600160a01b038116811461091757600080fd5b919050565b60008060006060848603121561093157600080fd5b833592506020840135915061094860408501610900565b90509250925092565b803567ffffffffffffffff8116811461091757600080fd5b6000806040838503121561097c57600080fd5b8235915061098c60208401610951565b90509250929050565b600080604083850312156109a857600080fd5b8235915061098c60208401610900565b600080604083850312156109cb57600080fd5b6109d483610900565b915061098c60208401610900565b600080600080600060a086880312156109fa57600080fd5b8535945060208601359350610a1160408701610900565b9250610a1f60608701610900565b9150610a2d60808701610951565b90509295509295909350565b60008060408385031215610a4c57600080fd5b610a5583610900565b915060208301358015158114610a6a57600080fd5b809150509250929050565b60008060008060808587031215610a8b57600080fd5b84359350610a9b60208601610900565b9250610aa960408601610900565b9150610ab760608601610951565b905092959194509250565b6020808252600d908201526c1858d8d95cdcc819195b9a5959609a1b60408201526060019056fea2646970667358221220354682666d08e6dc48d525c816caebcbc417b09b14c829b204fbff37fe0ec5fd64736f6c63430008110033","sourceMap":"131:6599:62:-:0;;;764:62;;;;;;;;;-1:-1:-1;788:7:62;:12;;;;;;:31;;-1:-1:-1;;;;;;788:31:62;809:10;788:31;;;131:6599;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80632637588e11610097578063a22cb46511610066578063a22cb465146102cf578063cf408823146102e2578063e985e9c5146102f5578063f79fe5381461033157600080fd5b80632637588e14610263578063538ba4f9146102a15780635b0fc9c3146102a95780635ef2c7f0146102bc57600080fd5b806306ab5923116100d357806306ab5923146101cd57806314ab9038146101ee57806316a25cbd146102035780631896f70a1461025057600080fd5b80630178b8bf146100fa57806301e647251461014357806302571be3146101ba575b600080fd5b6101266101083660046108e7565b6000908152602081905260409020600101546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b61018a6101513660046108e7565b600060208190529081526040902080546001909101546001600160a01b0391821691811690600160a01b900467ffffffffffffffff1683565b604080516001600160a01b03948516815293909216602084015267ffffffffffffffff169082015260600161013a565b6101266101c83660046108e7565b61035c565b6101e06101db36600461091c565b61038a565b60405190815260200161013a565b6102016101fc366004610969565b610476565b005b6102376102113660046108e7565b600090815260208190526040902060010154600160a01b900467ffffffffffffffff1690565b60405167ffffffffffffffff909116815260200161013a565b61020161025e366004610995565b61055c565b6102916102713660046109b8565b600160209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161013a565b610126600081565b6102016102b7366004610995565b610634565b6102016102ca3660046109e2565b6106e9565b6102016102dd366004610a39565b61070b565b6102016102f0366004610a75565b610777565b6102916103033660046109b8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61029161033f3660046108e7565b6000908152602081905260409020546001600160a01b0316151590565b6000818152602081905260408120546001600160a01b03163081036103845750600092915050565b92915050565b60008381526020819052604081205484906001600160a01b0316338114806103d557506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6103fa5760405162461bcd60e51b81526004016103f190610ac2565b60405180910390fd5b6040805160208082018990528183018890528251808303840181526060909201909252805191012061042c8186610792565b6040516001600160a01b0386168152869088907fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829060200160405180910390a39695505050505050565b60008281526020819052604090205482906001600160a01b0316338114806104c157506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6104dd5760405162461bcd60e51b81526004016103f190610ac2565b60405167ffffffffffffffff8416815284907f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa689060200160405180910390a25050600091825260208290526040909120600101805467ffffffffffffffff909216600160a01b0267ffffffffffffffff60a01b19909216919091179055565b60008281526020819052604090205482906001600160a01b0316338114806105a757506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b6105c35760405162461bcd60e51b81526004016103f190610ac2565b6040516001600160a01b038416815284907f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a09060200160405180910390a2505060009182526020829052604090912060010180546001600160a01b0319166001600160a01b03909216919091179055565b60008281526020819052604090205482906001600160a01b03163381148061067f57506001600160a01b038116600090815260016020908152604080832033845290915290205460ff165b61069b5760405162461bcd60e51b81526004016103f190610ac2565b6106a58484610792565b6040516001600160a01b038416815284907fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2669060200160405180910390a250505050565b60006106f686868661038a565b90506107038184846107c0565b505050505050565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6107818484610634565b61078c8483836107c0565b50505050565b60009182526020829052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6000838152602081905260409020600101546001600160a01b03838116911614610846576000838152602081815260409182902060010180546001600160a01b0319166001600160a01b038616908117909155915191825284917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0910160405180910390a25b60008381526020819052604090206001015467ffffffffffffffff828116600160a01b90920416146108e25760008381526020818152604091829020600101805467ffffffffffffffff60a01b1916600160a01b67ffffffffffffffff861690810291909117909155915191825284917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68910160405180910390a25b505050565b6000602082840312156108f957600080fd5b5035919050565b80356001600160a01b038116811461091757600080fd5b919050565b60008060006060848603121561093157600080fd5b833592506020840135915061094860408501610900565b90509250925092565b803567ffffffffffffffff8116811461091757600080fd5b6000806040838503121561097c57600080fd5b8235915061098c60208401610951565b90509250929050565b600080604083850312156109a857600080fd5b8235915061098c60208401610900565b600080604083850312156109cb57600080fd5b6109d483610900565b915061098c60208401610900565b600080600080600060a086880312156109fa57600080fd5b8535945060208601359350610a1160408701610900565b9250610a1f60608701610900565b9150610a2d60808701610951565b90509295509295909350565b60008060408385031215610a4c57600080fd5b610a5583610900565b915060208301358015158114610a6a57600080fd5b809150509250929050565b60008060008060808587031215610a8b57600080fd5b84359350610a9b60208601610900565b9250610aa960408601610900565b9150610ab760608601610951565b905092959194509250565b6020808252600d908201526c1858d8d95cdcc819195b9a5959609a1b60408201526060019056fea2646970667358221220354682666d08e6dc48d525c816caebcbc417b09b14c829b204fbff37fe0ec5fd64736f6c63430008110033","sourceMap":"131:6599:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4677:127;;;;;;:::i;:::-;4748:7;4774:14;;;;;;;;;;:23;;;-1:-1:-1;;;;;4774:23:62;;4677:127;;;;-1:-1:-1;;;;;363:32:127;;;345:51;;333:2;318:18;4677:127:62;;;;;;;;322:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;322:42:62;;;;;;;-1:-1:-1;;;322:42:62;;;;;;;;;;-1:-1:-1;;;;;663:15:127;;;645:34;;715:15;;;;710:2;695:18;;688:43;779:18;767:31;747:18;;;740:59;595:2;580:18;322:42:62;407:398:127;4272:231:62;;;;;;:::i;:::-;;:::i;2567:314::-;;;;;;:::i;:::-;;:::i;:::-;;;1461:25:127;;;1449:2;1434:18;2567:314:62;1315:177:127;3401:162:62;;;;;;:::i;:::-;;:::i;:::-;;4973:116;;;;;;:::i;:::-;5039:6;5064:14;;;;;;;;;;:18;;;-1:-1:-1;;;5064:18:62;;;;;4973:116;;;;2104:18:127;2092:31;;;2074:50;;2062:2;2047:18;4973:116:62;1930:200:127;3058:193:62;;;;;;:::i;:::-;;:::i;370:62::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2824:14:127;;2817:22;2799:41;;2787:2;2772:18;370:62:62;2659:187:127;166:49:62;;213:1;166:49;;2082:170;;;;;;:::i;:::-;;:::i;1583:258::-;;;;;;:::i;:::-;;:::i;3899:212::-;;;;;;:::i;:::-;;:::i;1071:200::-;;;;;;:::i;:::-;;:::i;5716:159::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5840:17:62;;;5817:4;5840:17;;;:9;:17;;;;;;;;:28;;;;;;;;;;;;;;;5716:159;5260:141;;;;;;:::i;:::-;5335:4;5358:14;;;;;;;;;;:20;-1:-1:-1;;;;;5358:20:62;:36;;;5260:141;4272:231;4340:7;4374:14;;;;;;;;;;:20;-1:-1:-1;;;;;4374:20:62;4424:4;4408:21;;4404:71;;-1:-1:-1;213:1:62;;4272:231;-1:-1:-1;;4272:231:62:o;4404:71::-;4492:4;4272:231;-1:-1:-1;;4272:231:62:o;2567:314::-;2689:7;571:14;;;;;;;;;;:20;2674:5;;-1:-1:-1;;;;;571:20:62;619:10;609:20;;;:53;;-1:-1:-1;;;;;;633:17:62;;;;;;:9;:17;;;;;;;;651:10;633:29;;;;;;;;;;609:53;601:79;;;;-1:-1:-1;;;601:79:62;;;;;;;:::i;:::-;;;;;;;;;2736:31:::1;::::0;;::::1;::::0;;::::1;4583:19:127::0;;;4618:12;;;4611:28;;;2736:31:62;;;;;;;;;4655:12:127;;;;2736:31:62;;;2726:42;;;::::1;::::0;2778:26:::1;2726:42:::0;2797:6;2778:9:::1;:26::i;:::-;2819:31;::::0;-1:-1:-1;;;;;363:32:127;;345:51;;2835:6:62;;2828:5;;2819:31:::1;::::0;333:2:127;318:18;2819:31:62::1;;;;;;;2867:7:::0;2567:314;-1:-1:-1;;;;;;2567:314:62:o;3401:162::-;554:14;571;;;;;;;;;;:20;3480:5;;-1:-1:-1;;;;;571:20:62;619:10;609:20;;;:53;;-1:-1:-1;;;;;;633:17:62;;;;;;:9;:17;;;;;;;;651:10;633:29;;;;;;;;;;609:53;601:79;;;;-1:-1:-1;;;601:79:62;;;;;;;:::i;:::-;3502:19:::1;::::0;2104:18:127;2092:31;;2074:50;;3509:5:62;;3502:19:::1;::::0;2062:2:127;2047:18;3502:19:62::1;;;;;;;-1:-1:-1::0;;3531:7:62::1;:14:::0;;;::::1;::::0;;;;;;;:18:::1;;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;3531:25:62::1;-1:-1:-1::0;;;;3531:25:62;;::::1;::::0;;;::::1;::::0;;3401:162::o;3058:193::-;554:14;571;;;;;;;;;;:20;3148:5;;-1:-1:-1;;;;;571:20:62;619:10;609:20;;;:53;;-1:-1:-1;;;;;;633:17:62;;;;;;:9;:17;;;;;;;;651:10;633:29;;;;;;;;;;609:53;601:79;;;;-1:-1:-1;;;601:79:62;;;;;;;:::i;:::-;3170:29:::1;::::0;-1:-1:-1;;;;;363:32:127;;345:51;;3182:5:62;;3170:29:::1;::::0;333:2:127;318:18;3170:29:62::1;;;;;;;-1:-1:-1::0;;3209:7:62::1;:14:::0;;;::::1;::::0;;;;;;;:23:::1;;:35:::0;;-1:-1:-1;;;;;;3209:35:62::1;-1:-1:-1::0;;;;;3209:35:62;;::::1;::::0;;;::::1;::::0;;3058:193::o;2082:170::-;554:14;571;;;;;;;;;;:20;2166:5;;-1:-1:-1;;;;;571:20:62;619:10;609:20;;;:53;;-1:-1:-1;;;;;;633:17:62;;;;;;:9;:17;;;;;;;;651:10;633:29;;;;;;;;;;609:53;601:79;;;;-1:-1:-1;;;601:79:62;;;;;;;:::i;:::-;2183:24:::1;2193:5;2200:6;2183:9;:24::i;:::-;2222:23;::::0;-1:-1:-1;;;;;363:32:127;;345:51;;2231:5:62;;2222:23:::1;::::0;333:2:127;318:18;2222:23:62::1;;;;;;;544:154:::0;2082:170;;;:::o;1583:258::-;1724:15;1742:38;1758:5;1765:6;1773;1742:15;:38::i;:::-;1724:56;;1790:44;1809:7;1818:9;1829:4;1790:18;:44::i;:::-;1714:127;1583:258;;;;;:::o;3899:212::-;4007:10;3997:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3997:32:62;;;;;;;;;;;;:44;;-1:-1:-1;;3997:44:62;;;;;;;;;;4056:48;;2799:41:127;;;3997:32:62;;4007:10;4056:48;;2772:18:127;4056:48:62;;;;;;;3899:212;;:::o;1071:200::-;1189:23;1198:5;1205:6;1189:8;:23::i;:::-;1222:42;1241:5;1248:9;1259:4;1222:18;:42::i;:::-;1071:200;;;;:::o;6029:113::-;6106:7;:14;;;;;;;;;;;:29;;-1:-1:-1;;;;;;6106:29:62;-1:-1:-1;;;;;6106:29:62;;;;;;;;;6029:113::o;6350:378::-;6460:7;:14;;;;;;;;;;:23;;;-1:-1:-1;;;;;6447:36:62;;;6460:23;;6447:36;6444:149;;6499:7;:14;;;;;;;;;;;;:23;;:35;;-1:-1:-1;;;;;;6499:35:62;-1:-1:-1;;;;;6499:35:62;;;;;;;;6553:29;;345:51:127;;;6499:14:62;;6553:29;;318:18:127;6553:29:62;;;;;;;6444:149;6614:7;:14;;;;;;;;;;:18;;;;6606:26;;;-1:-1:-1;;;6614:18:62;;;;6606:26;6603:119;;6648:7;:14;;;;;;;;;;;;:18;;:25;;-1:-1:-1;;;;6648:25:62;-1:-1:-1;;;6648:25:62;;;;;;;;;;;;;6692:19;;2074:50:127;;;6648:14:62;;6692:19;;2047:18:127;6692:19:62;;;;;;;6603:119;6350:378;;;:::o;14:180:127:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:127;;14:180;-1:-1:-1;14:180:127:o;810:173::-;878:20;;-1:-1:-1;;;;;927:31:127;;917:42;;907:70;;973:1;970;963:12;907:70;810:173;;;:::o;988:322::-;1065:6;1073;1081;1134:2;1122:9;1113:7;1109:23;1105:32;1102:52;;;1150:1;1147;1140:12;1102:52;1186:9;1173:23;1163:33;;1243:2;1232:9;1228:18;1215:32;1205:42;;1266:38;1300:2;1289:9;1285:18;1266:38;:::i;:::-;1256:48;;988:322;;;;;:::o;1497:171::-;1564:20;;1624:18;1613:30;;1603:41;;1593:69;;1658:1;1655;1648:12;1673:252;1740:6;1748;1801:2;1789:9;1780:7;1776:23;1772:32;1769:52;;;1817:1;1814;1807:12;1769:52;1853:9;1840:23;1830:33;;1882:37;1915:2;1904:9;1900:18;1882:37;:::i;:::-;1872:47;;1673:252;;;;;:::o;2135:254::-;2203:6;2211;2264:2;2252:9;2243:7;2239:23;2235:32;2232:52;;;2280:1;2277;2270:12;2232:52;2316:9;2303:23;2293:33;;2345:38;2379:2;2368:9;2364:18;2345:38;:::i;2394:260::-;2462:6;2470;2523:2;2511:9;2502:7;2498:23;2494:32;2491:52;;;2539:1;2536;2529:12;2491:52;2562:29;2581:9;2562:29;:::i;:::-;2552:39;;2610:38;2644:2;2633:9;2629:18;2610:38;:::i;2851:470::-;2945:6;2953;2961;2969;2977;3030:3;3018:9;3009:7;3005:23;3001:33;2998:53;;;3047:1;3044;3037:12;2998:53;3083:9;3070:23;3060:33;;3140:2;3129:9;3125:18;3112:32;3102:42;;3163:38;3197:2;3186:9;3182:18;3163:38;:::i;:::-;3153:48;;3220:38;3254:2;3243:9;3239:18;3220:38;:::i;:::-;3210:48;;3277:38;3310:3;3299:9;3295:19;3277:38;:::i;:::-;3267:48;;2851:470;;;;;;;;:::o;3326:347::-;3391:6;3399;3452:2;3440:9;3431:7;3427:23;3423:32;3420:52;;;3468:1;3465;3458:12;3420:52;3491:29;3510:9;3491:29;:::i;:::-;3481:39;;3570:2;3559:9;3555:18;3542:32;3617:5;3610:13;3603:21;3596:5;3593:32;3583:60;;3639:1;3636;3629:12;3583:60;3662:5;3652:15;;;3326:347;;;;;:::o;3678:401::-;3763:6;3771;3779;3787;3840:3;3828:9;3819:7;3815:23;3811:33;3808:53;;;3857:1;3854;3847:12;3808:53;3893:9;3880:23;3870:33;;3922:38;3956:2;3945:9;3941:18;3922:38;:::i;:::-;3912:48;;3979:38;4013:2;4002:9;3998:18;3979:38;:::i;:::-;3969:48;;4036:37;4069:2;4058:9;4054:18;4036:37;:::i;:::-;4026:47;;3678:401;;;;;;;:::o;4084:337::-;4286:2;4268:21;;;4325:2;4305:18;;;4298:30;-1:-1:-1;;;4359:2:127;4344:18;;4337:43;4412:2;4397:18;;4084:337::o","linkReferences":{}},"methodIdentifiers":{"ZERO_ADDRESS()":"538ba4f9","isApprovedForAll(address,address)":"e985e9c5","operators(address,address)":"2637588e","owner(bytes32)":"02571be3","recordExists(bytes32)":"f79fe538","records(bytes32)":"01e64725","resolver(bytes32)":"0178b8bf","setApprovalForAll(address,bool)":"a22cb465","setOwner(bytes32,address)":"5b0fc9c3","setRecord(bytes32,address,address,uint64)":"cf408823","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setSubnodeRecord(bytes32,bytes32,address,address,uint64)":"5ef2c7f0","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"}],\"name\":\"recordExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"records\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_ttl\",\"type\":\"uint64\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_ttl\",\"type\":\"uint64\"}],\"name\":\"setSubnodeRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The CRS registry contract.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructs a new CRS registrar.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Query if an address is an authorized operator for another address.\",\"params\":{\"_operator\":\"The address that acts on behalf of the owner.\",\"_owner\":\"The address that owns the records.\"},\"returns\":{\"_0\":\"True if `operator` is an approved operator for `owner`, false otherwise.\"}},\"owner(bytes32)\":{\"details\":\"Returns the address that owns the specified node.\",\"params\":{\"_node\":\"The specified node.\"},\"returns\":{\"_0\":\"address of the owner.\"}},\"recordExists(bytes32)\":{\"details\":\"Returns whether a record has been imported to the registry.\",\"params\":{\"_node\":\"The specified node.\"},\"returns\":{\"_0\":\"Bool if record exists\"}},\"resolver(bytes32)\":{\"details\":\"Returns the address of the resolver for the specified node.\",\"params\":{\"_node\":\"The specified node.\"},\"returns\":{\"_0\":\"address of the resolver.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage  all of `msg.sender`'s CRS records. Emits the ApprovalForAll event.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval.\",\"_operator\":\"Address to add to the set of authorized operators.\"}},\"setOwner(bytes32,address)\":{\"details\":\"Transfers ownership of a node to a new address. May only be called by the current owner of the node.\",\"params\":{\"_node\":\"The node to transfer ownership of.\",\"_owner\":\"The address of the new owner.\"}},\"setRecord(bytes32,address,address,uint64)\":{\"details\":\"Sets the record for a node.\",\"params\":{\"_node\":\"The node to update.\",\"_owner\":\"The address of the new owner.\",\"_resolver\":\"The address of the resolver.\",\"_ttl\":\"The TTL in seconds.\"}},\"setResolver(bytes32,address)\":{\"details\":\"Sets the resolver address for the specified node.\",\"params\":{\"_node\":\"The node to update.\",\"_resolver\":\"The address of the resolver.\"}},\"setSubnodeOwner(bytes32,bytes32,address)\":{\"details\":\"Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.\",\"params\":{\"_label\":\"The hash of the label specifying the subnode.\",\"_node\":\"The parent node.\",\"_owner\":\"The address of the new owner.\"}},\"setSubnodeRecord(bytes32,bytes32,address,address,uint64)\":{\"details\":\"Sets the record for a subnode.\",\"params\":{\"_label\":\"The hash of the label specifying the subnode.\",\"_node\":\"The parent node.\",\"_owner\":\"The address of the new owner.\",\"_resolver\":\"The address of the resolver.\",\"_ttl\":\"The TTL in seconds.\"}},\"setTTL(bytes32,uint64)\":{\"details\":\"Sets the TTL for the specified node.\",\"params\":{\"_node\":\"The node to update.\",\"_ttl\":\"The TTL in seconds.\"}},\"ttl(bytes32)\":{\"details\":\"Returns the TTL of a node, and any records associated with it.\",\"params\":{\"_node\":\"The specified node.\"},\"returns\":{\"_0\":\"ttl of the node.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@le7el/web3_crs/contracts/registry/CRSRegistry.sol\":\"CRSRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@le7el/=node_modules/@le7el/\",\":@le7el/generative_art/=node_modules/@le7el/generative_art/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/src/\",\":src/=src/\"]},\"sources\":{\"node_modules/@le7el/web3_crs/contracts/registry/CRSRegistry.sol\":{\"keccak256\":\"0x48802bff3d989be7ddf9beaeb88d6efd8af2cef0170b9d8d9ec3853636ac4272\",\"license\":\"BSD-2-Clause\",\"urls\":[\"bzz-raw://a5ba82178963a17fbeea68527682080c64136a1c53c2f69302bc32321a3f4489\",\"dweb:/ipfs/QmPSSZUm1QtfoUUZWFC9MgMFyVfN6AaAGtWYGsGcS2QSDY\"]},\"node_modules/@le7el/web3_crs/contracts/registry/ICRS.sol\":{\"keccak256\":\"0xd41df387a0c955997dd3463d64ae04236b26154fc089804367a113b9d518133f\",\"license\":\"BSD-2-Clause\",\"urls\":[\"bzz-raw://bc06dd67578272711b4523981ff2f509a6197030061e6e96188a64fa30753f19\",\"dweb:/ipfs/QmaZGRBNcoWDdKQW7v4Hzrgv76udJP8o9c45r3tuor82f4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.17+commit.8df45f5f"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"label","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"NewOwner","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32","indexed":true},{"internalType":"address","name":"resolver","type":"address","indexed":false}],"type":"event","name":"NewResolver","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32","indexed":true},{"internalType":"uint64","name":"ttl","type":"uint64","indexed":false}],"type":"event","name":"NewTTL","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ZERO_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"}],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"}],"stateMutability":"view","type":"function","name":"recordExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"records","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"},{"internalType":"uint64","name":"ttl","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"}],"stateMutability":"view","type":"function","name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_resolver","type":"address"},{"internalType":"uint64","name":"_ttl","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"},{"internalType":"address","name":"_resolver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"},{"internalType":"bytes32","name":"_label","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSubnodeOwner","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"},{"internalType":"bytes32","name":"_label","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_resolver","type":"address"},{"internalType":"uint64","name":"_ttl","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setSubnodeRecord"},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"},{"internalType":"uint64","name":"_ttl","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setTTL"},{"inputs":[{"internalType":"bytes32","name":"_node","type":"bytes32"}],"stateMutability":"view","type":"function","name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructs a new CRS registrar."},"isApprovedForAll(address,address)":{"details":"Query if an address is an authorized operator for another address.","params":{"_operator":"The address that acts on behalf of the owner.","_owner":"The address that owns the records."},"returns":{"_0":"True if `operator` is an approved operator for `owner`, false otherwise."}},"owner(bytes32)":{"details":"Returns the address that owns the specified node.","params":{"_node":"The specified node."},"returns":{"_0":"address of the owner."}},"recordExists(bytes32)":{"details":"Returns whether a record has been imported to the registry.","params":{"_node":"The specified node."},"returns":{"_0":"Bool if record exists"}},"resolver(bytes32)":{"details":"Returns the address of the resolver for the specified node.","params":{"_node":"The specified node."},"returns":{"_0":"address of the resolver."}},"setApprovalForAll(address,bool)":{"details":"Enable or disable approval for a third party (\"operator\") to manage  all of `msg.sender`'s CRS records. Emits the ApprovalForAll event.","params":{"_approved":"True if the operator is approved, false to revoke approval.","_operator":"Address to add to the set of authorized operators."}},"setOwner(bytes32,address)":{"details":"Transfers ownership of a node to a new address. May only be called by the current owner of the node.","params":{"_node":"The node to transfer ownership of.","_owner":"The address of the new owner."}},"setRecord(bytes32,address,address,uint64)":{"details":"Sets the record for a node.","params":{"_node":"The node to update.","_owner":"The address of the new owner.","_resolver":"The address of the resolver.","_ttl":"The TTL in seconds."}},"setResolver(bytes32,address)":{"details":"Sets the resolver address for the specified node.","params":{"_node":"The node to update.","_resolver":"The address of the resolver."}},"setSubnodeOwner(bytes32,bytes32,address)":{"details":"Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.","params":{"_label":"The hash of the label specifying the subnode.","_node":"The parent node.","_owner":"The address of the new owner."}},"setSubnodeRecord(bytes32,bytes32,address,address,uint64)":{"details":"Sets the record for a subnode.","params":{"_label":"The hash of the label specifying the subnode.","_node":"The parent node.","_owner":"The address of the new owner.","_resolver":"The address of the resolver.","_ttl":"The TTL in seconds."}},"setTTL(bytes32,uint64)":{"details":"Sets the TTL for the specified node.","params":{"_node":"The node to update.","_ttl":"The TTL in seconds."}},"ttl(bytes32)":{"details":"Returns the TTL of a node, and any records associated with it.","params":{"_node":"The specified node."},"returns":{"_0":"ttl of the node."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@le7el/=node_modules/@le7el/","@le7el/generative_art/=node_modules/@le7el/generative_art/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solmate/=lib/solmate/src/","src/=src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@le7el/web3_crs/contracts/registry/CRSRegistry.sol":"CRSRegistry"},"libraries":{}},"sources":{"node_modules/@le7el/web3_crs/contracts/registry/CRSRegistry.sol":{"keccak256":"0x48802bff3d989be7ddf9beaeb88d6efd8af2cef0170b9d8d9ec3853636ac4272","urls":["bzz-raw://a5ba82178963a17fbeea68527682080c64136a1c53c2f69302bc32321a3f4489","dweb:/ipfs/QmPSSZUm1QtfoUUZWFC9MgMFyVfN6AaAGtWYGsGcS2QSDY"],"license":"BSD-2-Clause"},"node_modules/@le7el/web3_crs/contracts/registry/ICRS.sol":{"keccak256":"0xd41df387a0c955997dd3463d64ae04236b26154fc089804367a113b9d518133f","urls":["bzz-raw://bc06dd67578272711b4523981ff2f509a6197030061e6e96188a64fa30753f19","dweb:/ipfs/QmaZGRBNcoWDdKQW7v4Hzrgv76udJP8o9c45r3tuor82f4"],"license":"BSD-2-Clause"}},"version":1},"ast":{"absolutePath":"node_modules/@le7el/web3_crs/contracts/registry/CRSRegistry.sol","id":55549,"exportedSymbols":{"CRSRegistry":[55548],"ICRS":[55685]},"nodeType":"SourceUnit","src":"41:6690:62","nodes":[{"id":55123,"nodeType":"PragmaDirective","src":"41:23:62","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55124,"nodeType":"ImportDirective","src":"66:20:62","nodes":[],"absolutePath":"node_modules/@le7el/web3_crs/contracts/registry/ICRS.sol","file":"./ICRS.sol","nameLocation":"-1:-1:-1","scope":55549,"sourceUnit":55686,"symbolAliases":[],"unitAlias":""},{"id":55548,"nodeType":"ContractDefinition","src":"131:6599:62","nodes":[{"id":55133,"nodeType":"VariableDeclaration","src":"166:49:62","nodes":[],"constant":true,"functionSelector":"538ba4f9","mutability":"constant","name":"ZERO_ADDRESS","nameLocation":"190:12:62","scope":55548,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55128,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30","id":55131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"213:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"205:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55129,"name":"address","nodeType":"ElementaryTypeName","src":"205:7:62","typeDescriptions":{}}},"id":55132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"205:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":55140,"nodeType":"StructDefinition","src":"226:90:62","nodes":[],"canonicalName":"CRSRegistry.Record","members":[{"constant":false,"id":55135,"mutability":"mutable","name":"owner","nameLocation":"258:5:62","nodeType":"VariableDeclaration","scope":55140,"src":"250:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55134,"name":"address","nodeType":"ElementaryTypeName","src":"250:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55137,"mutability":"mutable","name":"resolver","nameLocation":"281:8:62","nodeType":"VariableDeclaration","scope":55140,"src":"273:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55136,"name":"address","nodeType":"ElementaryTypeName","src":"273:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55139,"mutability":"mutable","name":"ttl","nameLocation":"306:3:62","nodeType":"VariableDeclaration","scope":55140,"src":"299:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55138,"name":"uint64","nodeType":"ElementaryTypeName","src":"299:6:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Record","nameLocation":"233:6:62","scope":55548,"visibility":"public"},{"id":55145,"nodeType":"VariableDeclaration","src":"322:42:62","nodes":[],"constant":false,"functionSelector":"01e64725","mutability":"mutable","name":"records","nameLocation":"357:7:62","scope":55548,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record)"},"typeName":{"id":55144,"keyType":{"id":55141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"322:27:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record)"},"valueType":{"id":55143,"nodeType":"UserDefinedTypeName","pathNode":{"id":55142,"name":"Record","nameLocations":["342:6:62"],"nodeType":"IdentifierPath","referencedDeclaration":55140,"src":"342:6:62"},"referencedDeclaration":55140,"src":"342:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage_ptr","typeString":"struct CRSRegistry.Record"}}},"visibility":"public"},{"id":55151,"nodeType":"VariableDeclaration","src":"370:62:62","nodes":[],"constant":false,"functionSelector":"2637588e","mutability":"mutable","name":"operators","nameLocation":"423:9:62","scope":55548,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":55150,"keyType":{"id":55146,"name":"address","nodeType":"ElementaryTypeName","src":"379:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"370:45:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":55149,"keyType":{"id":55147,"name":"address","nodeType":"ElementaryTypeName","src":"398:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"390:24:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":55148,"name":"bool","nodeType":"ElementaryTypeName","src":"409:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":55179,"nodeType":"ModifierDefinition","src":"509:189:62","nodes":[],"body":{"id":55178,"nodeType":"Block","src":"544:154:62","nodes":[],"statements":[{"assignments":[55156],"declarations":[{"constant":false,"id":55156,"mutability":"mutable","name":"_owner","nameLocation":"562:6:62","nodeType":"VariableDeclaration","scope":55178,"src":"554:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55155,"name":"address","nodeType":"ElementaryTypeName","src":"554:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55161,"initialValue":{"expression":{"baseExpression":{"id":55157,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"571:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55159,"indexExpression":{"id":55158,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55153,"src":"579:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"571:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"586:5:62","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":55135,"src":"571:20:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"554:37:62"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55163,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55156,"src":"609:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55164,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"619:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"623:6:62","memberName":"sender","nodeType":"MemberAccess","src":"619:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"609:20:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":55167,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55151,"src":"633:9:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":55169,"indexExpression":{"id":55168,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55156,"src":"643:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"633:17:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":55172,"indexExpression":{"expression":{"id":55170,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"651:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"655:6:62","memberName":"sender","nodeType":"MemberAccess","src":"651:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"633:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"609:53:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6163636573732064656e696564","id":55174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"664:15:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff","typeString":"literal_string \"access denied\""},"value":"access denied"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cba8a57ccb1594d7138ca5e2a9216c55d23151b53a95734bafda4b812e3786ff","typeString":"literal_string \"access denied\""}],"id":55162,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"601:7:62","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"601:79:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55176,"nodeType":"ExpressionStatement","src":"601:79:62"},{"id":55177,"nodeType":"PlaceholderStatement","src":"690:1:62"}]},"name":"authorised","nameLocation":"518:10:62","parameters":{"id":55154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55153,"mutability":"mutable","name":"_node","nameLocation":"537:5:62","nodeType":"VariableDeclaration","scope":55179,"src":"529:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"529:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"528:15:62"},"virtual":false,"visibility":"internal"},{"id":55192,"nodeType":"FunctionDefinition","src":"764:62:62","nodes":[],"body":{"id":55191,"nodeType":"Block","src":"778:48:62","nodes":[],"statements":[{"expression":{"id":55189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":55183,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"788:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55185,"indexExpression":{"hexValue":"307830","id":55184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"796:3:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"788:12:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"801:5:62","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":55135,"src":"788:18:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55187,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"809:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"813:6:62","memberName":"sender","nodeType":"MemberAccess","src":"809:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"788:31:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55190,"nodeType":"ExpressionStatement","src":"788:31:62"}]},"documentation":{"id":55180,"nodeType":"StructuredDocumentation","src":"704:55:62","text":" @dev Constructs a new CRS registrar."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55181,"nodeType":"ParameterList","parameters":[],"src":"775:2:62"},"returnParameters":{"id":55182,"nodeType":"ParameterList","parameters":[],"src":"778:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55217,"nodeType":"FunctionDefinition","src":"1071:200:62","nodes":[],"body":{"id":55216,"nodeType":"Block","src":"1179:92:62","nodes":[],"statements":[{"expression":{"arguments":[{"id":55206,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"1198:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55207,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55197,"src":"1205:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":55205,"name":"setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"1189:8:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":55208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:23:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55209,"nodeType":"ExpressionStatement","src":"1189:23:62"},{"expression":{"arguments":[{"id":55211,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"1241:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55212,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55199,"src":"1248:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55213,"name":"_ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55201,"src":"1259:4:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55210,"name":"_setResolverAndTTL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55547,"src":"1222:18:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint64_$returns$__$","typeString":"function (bytes32,address,uint64)"}},"id":55214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1222:42:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55215,"nodeType":"ExpressionStatement","src":"1222:42:62"}]},"baseFunctions":[55595],"documentation":{"id":55193,"nodeType":"StructuredDocumentation","src":"832:234:62","text":" @dev Sets the record for a node.\n @param _node The node to update.\n @param _owner The address of the new owner.\n @param _resolver The address of the resolver.\n @param _ttl The TTL in seconds."},"functionSelector":"cf408823","implemented":true,"kind":"function","modifiers":[],"name":"setRecord","nameLocation":"1080:9:62","overrides":{"id":55203,"nodeType":"OverrideSpecifier","overrides":[],"src":"1170:8:62"},"parameters":{"id":55202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55195,"mutability":"mutable","name":"_node","nameLocation":"1098:5:62","nodeType":"VariableDeclaration","scope":55217,"src":"1090:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1090:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55197,"mutability":"mutable","name":"_owner","nameLocation":"1113:6:62","nodeType":"VariableDeclaration","scope":55217,"src":"1105:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55196,"name":"address","nodeType":"ElementaryTypeName","src":"1105:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55199,"mutability":"mutable","name":"_resolver","nameLocation":"1129:9:62","nodeType":"VariableDeclaration","scope":55217,"src":"1121:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55198,"name":"address","nodeType":"ElementaryTypeName","src":"1121:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55201,"mutability":"mutable","name":"_ttl","nameLocation":"1147:4:62","nodeType":"VariableDeclaration","scope":55217,"src":"1140:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55200,"name":"uint64","nodeType":"ElementaryTypeName","src":"1140:6:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1089:63:62"},"returnParameters":{"id":55204,"nodeType":"ParameterList","parameters":[],"src":"1179:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":55247,"nodeType":"FunctionDefinition","src":"1583:258:62","nodes":[],"body":{"id":55246,"nodeType":"Block","src":"1714:127:62","nodes":[],"statements":[{"assignments":[55233],"declarations":[{"constant":false,"id":55233,"mutability":"mutable","name":"subnode","nameLocation":"1732:7:62","nodeType":"VariableDeclaration","scope":55246,"src":"1724:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1724:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55239,"initialValue":{"arguments":[{"id":55235,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55220,"src":"1758:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55236,"name":"_label","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55222,"src":"1765:6:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55237,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55224,"src":"1773:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":55234,"name":"setSubnodeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55310,"src":"1742:15:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,address) returns (bytes32)"}},"id":55238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1742:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1724:56:62"},{"expression":{"arguments":[{"id":55241,"name":"subnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55233,"src":"1809:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55242,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55226,"src":"1818:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55243,"name":"_ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55228,"src":"1829:4:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55240,"name":"_setResolverAndTTL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55547,"src":"1790:18:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint64_$returns$__$","typeString":"function (bytes32,address,uint64)"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:44:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"1790:44:62"}]},"baseFunctions":[55608],"documentation":{"id":55218,"nodeType":"StructuredDocumentation","src":"1277:301:62","text":" @dev Sets the record for a subnode.\n @param _node The parent node.\n @param _label The hash of the label specifying the subnode.\n @param _owner The address of the new owner.\n @param _resolver The address of the resolver.\n @param _ttl The TTL in seconds."},"functionSelector":"5ef2c7f0","implemented":true,"kind":"function","modifiers":[],"name":"setSubnodeRecord","nameLocation":"1592:16:62","overrides":{"id":55230,"nodeType":"OverrideSpecifier","overrides":[],"src":"1705:8:62"},"parameters":{"id":55229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55220,"mutability":"mutable","name":"_node","nameLocation":"1617:5:62","nodeType":"VariableDeclaration","scope":55247,"src":"1609:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1609:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55222,"mutability":"mutable","name":"_label","nameLocation":"1632:6:62","nodeType":"VariableDeclaration","scope":55247,"src":"1624:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55221,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1624:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55224,"mutability":"mutable","name":"_owner","nameLocation":"1648:6:62","nodeType":"VariableDeclaration","scope":55247,"src":"1640:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55223,"name":"address","nodeType":"ElementaryTypeName","src":"1640:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55226,"mutability":"mutable","name":"_resolver","nameLocation":"1664:9:62","nodeType":"VariableDeclaration","scope":55247,"src":"1656:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55225,"name":"address","nodeType":"ElementaryTypeName","src":"1656:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55228,"mutability":"mutable","name":"_ttl","nameLocation":"1682:4:62","nodeType":"VariableDeclaration","scope":55247,"src":"1675:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55227,"name":"uint64","nodeType":"ElementaryTypeName","src":"1675:6:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1608:79:62"},"returnParameters":{"id":55231,"nodeType":"ParameterList","parameters":[],"src":"1714:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":55270,"nodeType":"FunctionDefinition","src":"2082:170:62","nodes":[],"body":{"id":55269,"nodeType":"Block","src":"2173:79:62","nodes":[],"statements":[{"expression":{"arguments":[{"id":55260,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55250,"src":"2193:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55261,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"2200:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":55259,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55496,"src":"2183:9:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":55262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2183:24:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55263,"nodeType":"ExpressionStatement","src":"2183:24:62"},{"eventCall":{"arguments":[{"id":55265,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55250,"src":"2231:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55266,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55252,"src":"2238:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":55264,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55564,"src":"2222:8:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":55267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2222:23:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55268,"nodeType":"EmitStatement","src":"2217:28:62"}]},"baseFunctions":[55633],"documentation":{"id":55248,"nodeType":"StructuredDocumentation","src":"1847:230:62","text":" @dev Transfers ownership of a node to a new address. May only be called by the current owner of the node.\n @param _node The node to transfer ownership of.\n @param _owner The address of the new owner."},"functionSelector":"5b0fc9c3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":55256,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55250,"src":"2166:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":55257,"kind":"modifierInvocation","modifierName":{"id":55255,"name":"authorised","nameLocations":["2155:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":55179,"src":"2155:10:62"},"nodeType":"ModifierInvocation","src":"2155:17:62"}],"name":"setOwner","nameLocation":"2091:8:62","overrides":{"id":55254,"nodeType":"OverrideSpecifier","overrides":[],"src":"2146:8:62"},"parameters":{"id":55253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55250,"mutability":"mutable","name":"_node","nameLocation":"2108:5:62","nodeType":"VariableDeclaration","scope":55270,"src":"2100:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2100:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55252,"mutability":"mutable","name":"_owner","nameLocation":"2123:6:62","nodeType":"VariableDeclaration","scope":55270,"src":"2115:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55251,"name":"address","nodeType":"ElementaryTypeName","src":"2115:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2099:31:62"},"returnParameters":{"id":55258,"nodeType":"ParameterList","parameters":[],"src":"2173:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55310,"nodeType":"FunctionDefinition","src":"2567:314:62","nodes":[],"body":{"id":55309,"nodeType":"Block","src":"2698:183:62","nodes":[],"statements":[{"assignments":[55287],"declarations":[{"constant":false,"id":55287,"mutability":"mutable","name":"subnode","nameLocation":"2716:7:62","nodeType":"VariableDeclaration","scope":55309,"src":"2708:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55286,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2708:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55295,"initialValue":{"arguments":[{"arguments":[{"id":55291,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55273,"src":"2753:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55292,"name":"_label","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"2760:6:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55289,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2736:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2740:12:62","memberName":"encodePacked","nodeType":"MemberAccess","src":"2736:16:62","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:31:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55288,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2726:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2726:42:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2708:60:62"},{"expression":{"arguments":[{"id":55297,"name":"subnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"2788:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55298,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55277,"src":"2797:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":55296,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55496,"src":"2778:9:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":55299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2778:26:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55300,"nodeType":"ExpressionStatement","src":"2778:26:62"},{"eventCall":{"arguments":[{"id":55302,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55273,"src":"2828:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55303,"name":"_label","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55275,"src":"2835:6:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55304,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55277,"src":"2843:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":55301,"name":"NewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"2819:8:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bytes32,address)"}},"id":55305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2819:31:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55306,"nodeType":"EmitStatement","src":"2814:36:62"},{"expression":{"id":55307,"name":"subnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"2867:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":55285,"id":55308,"nodeType":"Return","src":"2860:14:62"}]},"baseFunctions":[55619],"documentation":{"id":55271,"nodeType":"StructuredDocumentation","src":"2258:304:62","text":" @dev Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.\n @param _node The parent node.\n @param _label The hash of the label specifying the subnode.\n @param _owner The address of the new owner."},"functionSelector":"06ab5923","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":55281,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55273,"src":"2674:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":55282,"kind":"modifierInvocation","modifierName":{"id":55280,"name":"authorised","nameLocations":["2663:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":55179,"src":"2663:10:62"},"nodeType":"ModifierInvocation","src":"2663:17:62"}],"name":"setSubnodeOwner","nameLocation":"2576:15:62","overrides":{"id":55279,"nodeType":"OverrideSpecifier","overrides":[],"src":"2654:8:62"},"parameters":{"id":55278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55273,"mutability":"mutable","name":"_node","nameLocation":"2600:5:62","nodeType":"VariableDeclaration","scope":55310,"src":"2592:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55275,"mutability":"mutable","name":"_label","nameLocation":"2615:6:62","nodeType":"VariableDeclaration","scope":55310,"src":"2607:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2607:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55277,"mutability":"mutable","name":"_owner","nameLocation":"2631:6:62","nodeType":"VariableDeclaration","scope":55310,"src":"2623:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55276,"name":"address","nodeType":"ElementaryTypeName","src":"2623:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2591:47:62"},"returnParameters":{"id":55285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55310,"src":"2689:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2689:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2688:9:62"},"scope":55548,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55335,"nodeType":"FunctionDefinition","src":"3058:193:62","nodes":[],"body":{"id":55334,"nodeType":"Block","src":"3155:96:62","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":55323,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55313,"src":"3182:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55324,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55315,"src":"3189:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":55322,"name":"NewResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55570,"src":"3170:11:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":55325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3170:29:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55326,"nodeType":"EmitStatement","src":"3165:34:62"},{"expression":{"id":55332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":55327,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"3209:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55329,"indexExpression":{"id":55328,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55313,"src":"3217:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3209:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3224:8:62","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":55137,"src":"3209:23:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55331,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55315,"src":"3235:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3209:35:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55333,"nodeType":"ExpressionStatement","src":"3209:35:62"}]},"baseFunctions":[55626],"documentation":{"id":55311,"nodeType":"StructuredDocumentation","src":"2887:166:62","text":" @dev Sets the resolver address for the specified node.\n @param _node The node to update.\n @param _resolver The address of the resolver."},"functionSelector":"1896f70a","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":55319,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55313,"src":"3148:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":55320,"kind":"modifierInvocation","modifierName":{"id":55318,"name":"authorised","nameLocations":["3137:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":55179,"src":"3137:10:62"},"nodeType":"ModifierInvocation","src":"3137:17:62"}],"name":"setResolver","nameLocation":"3067:11:62","overrides":{"id":55317,"nodeType":"OverrideSpecifier","overrides":[],"src":"3128:8:62"},"parameters":{"id":55316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55313,"mutability":"mutable","name":"_node","nameLocation":"3087:5:62","nodeType":"VariableDeclaration","scope":55335,"src":"3079:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3079:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55315,"mutability":"mutable","name":"_resolver","nameLocation":"3102:9:62","nodeType":"VariableDeclaration","scope":55335,"src":"3094:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55314,"name":"address","nodeType":"ElementaryTypeName","src":"3094:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3078:34:62"},"returnParameters":{"id":55321,"nodeType":"ParameterList","parameters":[],"src":"3155:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55360,"nodeType":"FunctionDefinition","src":"3401:162:62","nodes":[],"body":{"id":55359,"nodeType":"Block","src":"3487:76:62","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":55348,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55338,"src":"3509:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55349,"name":"_ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"3516:4:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55347,"name":"NewTTL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55576,"src":"3502:6:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint64_$returns$__$","typeString":"function (bytes32,uint64)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3502:19:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55351,"nodeType":"EmitStatement","src":"3497:24:62"},{"expression":{"id":55357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":55352,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"3531:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55354,"indexExpression":{"id":55353,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55338,"src":"3539:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3531:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3546:3:62","memberName":"ttl","nodeType":"MemberAccess","referencedDeclaration":55139,"src":"3531:18:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55356,"name":"_ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55340,"src":"3552:4:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3531:25:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":55358,"nodeType":"ExpressionStatement","src":"3531:25:62"}]},"baseFunctions":[55640],"documentation":{"id":55336,"nodeType":"StructuredDocumentation","src":"3257:139:62","text":" @dev Sets the TTL for the specified node.\n @param _node The node to update.\n @param _ttl The TTL in seconds."},"functionSelector":"14ab9038","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":55344,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55338,"src":"3480:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":55345,"kind":"modifierInvocation","modifierName":{"id":55343,"name":"authorised","nameLocations":["3469:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":55179,"src":"3469:10:62"},"nodeType":"ModifierInvocation","src":"3469:17:62"}],"name":"setTTL","nameLocation":"3410:6:62","overrides":{"id":55342,"nodeType":"OverrideSpecifier","overrides":[],"src":"3460:8:62"},"parameters":{"id":55341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55338,"mutability":"mutable","name":"_node","nameLocation":"3425:5:62","nodeType":"VariableDeclaration","scope":55360,"src":"3417:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3417:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55340,"mutability":"mutable","name":"_ttl","nameLocation":"3439:4:62","nodeType":"VariableDeclaration","scope":55360,"src":"3432:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55339,"name":"uint64","nodeType":"ElementaryTypeName","src":"3432:6:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3416:28:62"},"returnParameters":{"id":55346,"nodeType":"ParameterList","parameters":[],"src":"3487:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":55386,"nodeType":"FunctionDefinition","src":"3899:212:62","nodes":[],"body":{"id":55385,"nodeType":"Block","src":"3987:124:62","nodes":[],"statements":[{"expression":{"id":55376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":55369,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55151,"src":"3997:9:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":55373,"indexExpression":{"expression":{"id":55370,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4007:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4011:6:62","memberName":"sender","nodeType":"MemberAccess","src":"4007:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3997:21:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":55374,"indexExpression":{"id":55372,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55363,"src":"4019:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3997:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55375,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"4032:9:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3997:44:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55377,"nodeType":"ExpressionStatement","src":"3997:44:62"},{"eventCall":{"arguments":[{"expression":{"id":55379,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4071:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4075:6:62","memberName":"sender","nodeType":"MemberAccess","src":"4071:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55381,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55363,"src":"4083:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55382,"name":"_approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55365,"src":"4094:9:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":55378,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55584,"src":"4056:14:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":55383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4056:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55384,"nodeType":"EmitStatement","src":"4051:53:62"}]},"baseFunctions":[55647],"documentation":{"id":55361,"nodeType":"StructuredDocumentation","src":"3569:325:62","text":" @dev Enable or disable approval for a third party (\"operator\") to manage\n  all of `msg.sender`'s CRS records. Emits the ApprovalForAll event.\n @param _operator Address to add to the set of authorized operators.\n @param _approved True if the operator is approved, false to revoke approval."},"functionSelector":"a22cb465","implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3908:17:62","overrides":{"id":55367,"nodeType":"OverrideSpecifier","overrides":[],"src":"3978:8:62"},"parameters":{"id":55366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55363,"mutability":"mutable","name":"_operator","nameLocation":"3934:9:62","nodeType":"VariableDeclaration","scope":55386,"src":"3926:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55362,"name":"address","nodeType":"ElementaryTypeName","src":"3926:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55365,"mutability":"mutable","name":"_approved","nameLocation":"3950:9:62","nodeType":"VariableDeclaration","scope":55386,"src":"3945:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55364,"name":"bool","nodeType":"ElementaryTypeName","src":"3945:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3925:35:62"},"returnParameters":{"id":55368,"nodeType":"ParameterList","parameters":[],"src":"3987:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":55415,"nodeType":"FunctionDefinition","src":"4272:231:62","nodes":[],"body":{"id":55414,"nodeType":"Block","src":"4349:154:62","nodes":[],"statements":[{"assignments":[55396],"declarations":[{"constant":false,"id":55396,"mutability":"mutable","name":"addr","nameLocation":"4367:4:62","nodeType":"VariableDeclaration","scope":55414,"src":"4359:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55395,"name":"address","nodeType":"ElementaryTypeName","src":"4359:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55401,"initialValue":{"expression":{"baseExpression":{"id":55397,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"4374:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55399,"indexExpression":{"id":55398,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55389,"src":"4382:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4374:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4389:5:62","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":55135,"src":"4374:20:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4359:35:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55402,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55396,"src":"4408:4:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":55405,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4424:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_CRSRegistry_$55548","typeString":"contract CRSRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CRSRegistry_$55548","typeString":"contract CRSRegistry"}],"id":55404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4416:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55403,"name":"address","nodeType":"ElementaryTypeName","src":"4416:7:62","typeDescriptions":{}}},"id":55406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4408:21:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55411,"nodeType":"IfStatement","src":"4404:71:62","trueBody":{"id":55410,"nodeType":"Block","src":"4431:44:62","statements":[{"expression":{"id":55408,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55133,"src":"4452:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55394,"id":55409,"nodeType":"Return","src":"4445:19:62"}]}},{"expression":{"id":55412,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55396,"src":"4492:4:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55394,"id":55413,"nodeType":"Return","src":"4485:11:62"}]},"baseFunctions":[55654],"documentation":{"id":55387,"nodeType":"StructuredDocumentation","src":"4117:150:62","text":" @dev Returns the address that owns the specified node.\n @param _node The specified node.\n @return address of the owner."},"functionSelector":"02571be3","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"4281:5:62","overrides":{"id":55391,"nodeType":"OverrideSpecifier","overrides":[],"src":"4317:8:62"},"parameters":{"id":55390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55389,"mutability":"mutable","name":"_node","nameLocation":"4295:5:62","nodeType":"VariableDeclaration","scope":55415,"src":"4287:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4287:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4286:15:62"},"returnParameters":{"id":55394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55415,"src":"4340:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55392,"name":"address","nodeType":"ElementaryTypeName","src":"4340:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4339:9:62"},"scope":55548,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":55430,"nodeType":"FunctionDefinition","src":"4677:127:62","nodes":[],"body":{"id":55429,"nodeType":"Block","src":"4757:47:62","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":55424,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"4774:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55426,"indexExpression":{"id":55425,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55418,"src":"4782:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4774:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4789:8:62","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":55137,"src":"4774:23:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55423,"id":55428,"nodeType":"Return","src":"4767:30:62"}]},"baseFunctions":[55661],"documentation":{"id":55416,"nodeType":"StructuredDocumentation","src":"4509:163:62","text":" @dev Returns the address of the resolver for the specified node.\n @param _node The specified node.\n @return address of the resolver."},"functionSelector":"0178b8bf","implemented":true,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"4686:8:62","overrides":{"id":55420,"nodeType":"OverrideSpecifier","overrides":[],"src":"4725:8:62"},"parameters":{"id":55419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55418,"mutability":"mutable","name":"_node","nameLocation":"4703:5:62","nodeType":"VariableDeclaration","scope":55430,"src":"4695:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4695:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4694:15:62"},"returnParameters":{"id":55423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55430,"src":"4748:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55421,"name":"address","nodeType":"ElementaryTypeName","src":"4748:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4747:9:62"},"scope":55548,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":55445,"nodeType":"FunctionDefinition","src":"4973:116:62","nodes":[],"body":{"id":55444,"nodeType":"Block","src":"5047:42:62","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":55439,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"5064:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55441,"indexExpression":{"id":55440,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55433,"src":"5072:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5064:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5079:3:62","memberName":"ttl","nodeType":"MemberAccess","referencedDeclaration":55139,"src":"5064:18:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":55438,"id":55443,"nodeType":"Return","src":"5057:25:62"}]},"baseFunctions":[55668],"documentation":{"id":55431,"nodeType":"StructuredDocumentation","src":"4810:158:62","text":" @dev Returns the TTL of a node, and any records associated with it.\n @param _node The specified node.\n @return ttl of the node."},"functionSelector":"16a25cbd","implemented":true,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"4982:3:62","overrides":{"id":55435,"nodeType":"OverrideSpecifier","overrides":[],"src":"5016:8:62"},"parameters":{"id":55434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55433,"mutability":"mutable","name":"_node","nameLocation":"4994:5:62","nodeType":"VariableDeclaration","scope":55445,"src":"4986:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4986:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4985:15:62"},"returnParameters":{"id":55438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55445,"src":"5039:6:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55436,"name":"uint64","nodeType":"ElementaryTypeName","src":"5039:6:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5038:8:62"},"scope":55548,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":55462,"nodeType":"FunctionDefinition","src":"5260:141:62","nodes":[],"body":{"id":55461,"nodeType":"Block","src":"5341:60:62","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":55454,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"5358:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55456,"indexExpression":{"id":55455,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55448,"src":"5366:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5358:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5373:5:62","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":55135,"src":"5358:20:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":55458,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55133,"src":"5382:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5358:36:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":55453,"id":55460,"nodeType":"Return","src":"5351:43:62"}]},"baseFunctions":[55675],"documentation":{"id":55446,"nodeType":"StructuredDocumentation","src":"5095:160:62","text":" @dev Returns whether a record has been imported to the registry.\n @param _node The specified node.\n @return Bool if record exists"},"functionSelector":"f79fe538","implemented":true,"kind":"function","modifiers":[],"name":"recordExists","nameLocation":"5269:12:62","overrides":{"id":55450,"nodeType":"OverrideSpecifier","overrides":[],"src":"5312:8:62"},"parameters":{"id":55449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55448,"mutability":"mutable","name":"_node","nameLocation":"5290:5:62","nodeType":"VariableDeclaration","scope":55462,"src":"5282:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5282:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5281:15:62"},"returnParameters":{"id":55453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55462,"src":"5335:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55451,"name":"bool","nodeType":"ElementaryTypeName","src":"5335:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5334:6:62"},"scope":55548,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":55480,"nodeType":"FunctionDefinition","src":"5716:159:62","nodes":[],"body":{"id":55479,"nodeType":"Block","src":"5823:52:62","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":55473,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55151,"src":"5840:9:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":55475,"indexExpression":{"id":55474,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55465,"src":"5850:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5840:17:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":55477,"indexExpression":{"id":55476,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55467,"src":"5858:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5840:28:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":55472,"id":55478,"nodeType":"Return","src":"5833:35:62"}]},"baseFunctions":[55684],"documentation":{"id":55463,"nodeType":"StructuredDocumentation","src":"5407:304:62","text":" @dev Query if an address is an authorized operator for another address.\n @param _owner The address that owns the records.\n @param _operator The address that acts on behalf of the owner.\n @return True if `operator` is an approved operator for `owner`, false otherwise."},"functionSelector":"e985e9c5","implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"5725:16:62","overrides":{"id":55469,"nodeType":"OverrideSpecifier","overrides":[],"src":"5794:8:62"},"parameters":{"id":55468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55465,"mutability":"mutable","name":"_owner","nameLocation":"5750:6:62","nodeType":"VariableDeclaration","scope":55480,"src":"5742:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55464,"name":"address","nodeType":"ElementaryTypeName","src":"5742:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55467,"mutability":"mutable","name":"_operator","nameLocation":"5766:9:62","nodeType":"VariableDeclaration","scope":55480,"src":"5758:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55466,"name":"address","nodeType":"ElementaryTypeName","src":"5758:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5741:35:62"},"returnParameters":{"id":55472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55480,"src":"5817:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55470,"name":"bool","nodeType":"ElementaryTypeName","src":"5817:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5816:6:62"},"scope":55548,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":55496,"nodeType":"FunctionDefinition","src":"6029:113:62","nodes":[],"body":{"id":55495,"nodeType":"Block","src":"6096:46:62","nodes":[],"statements":[{"expression":{"id":55493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":55488,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"6106:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55490,"indexExpression":{"id":55489,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55483,"src":"6114:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6106:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6121:5:62","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":55135,"src":"6106:20:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55492,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"6129:6:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6106:29:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55494,"nodeType":"ExpressionStatement","src":"6106:29:62"}]},"documentation":{"id":55481,"nodeType":"StructuredDocumentation","src":"5881:143:62","text":" @dev Change ownership for a node.\n @param _node The specified node.\n @param _owner The address to own this node."},"implemented":true,"kind":"function","modifiers":[],"name":"_setOwner","nameLocation":"6038:9:62","parameters":{"id":55486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55483,"mutability":"mutable","name":"_node","nameLocation":"6056:5:62","nodeType":"VariableDeclaration","scope":55496,"src":"6048:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6048:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55485,"mutability":"mutable","name":"_owner","nameLocation":"6071:6:62","nodeType":"VariableDeclaration","scope":55496,"src":"6063:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55484,"name":"address","nodeType":"ElementaryTypeName","src":"6063:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6047:31:62"},"returnParameters":{"id":55487,"nodeType":"ParameterList","parameters":[],"src":"6096:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":55547,"nodeType":"FunctionDefinition","src":"6350:378:62","nodes":[],"body":{"id":55546,"nodeType":"Block","src":"6434:294:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55506,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55501,"src":"6447:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"baseExpression":{"id":55507,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"6460:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55509,"indexExpression":{"id":55508,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55499,"src":"6468:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6460:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6475:8:62","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":55137,"src":"6460:23:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6447:36:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55525,"nodeType":"IfStatement","src":"6444:149:62","trueBody":{"id":55524,"nodeType":"Block","src":"6485:108:62","statements":[{"expression":{"id":55517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":55512,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"6499:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55514,"indexExpression":{"id":55513,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55499,"src":"6507:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6499:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6514:8:62","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":55137,"src":"6499:23:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55516,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55501,"src":"6525:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6499:35:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55518,"nodeType":"ExpressionStatement","src":"6499:35:62"},{"eventCall":{"arguments":[{"id":55520,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55499,"src":"6565:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55521,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55501,"src":"6572:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":55519,"name":"NewResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55570,"src":"6553:11:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":55522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6553:29:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55523,"nodeType":"EmitStatement","src":"6548:34:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55526,"name":"_ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55503,"src":"6606:4:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"baseExpression":{"id":55527,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"6614:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55529,"indexExpression":{"id":55528,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55499,"src":"6622:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6614:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6629:3:62","memberName":"ttl","nodeType":"MemberAccess","referencedDeclaration":55139,"src":"6614:18:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6606:26:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55545,"nodeType":"IfStatement","src":"6603:119:62","trueBody":{"id":55544,"nodeType":"Block","src":"6634:88:62","statements":[{"expression":{"id":55537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":55532,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55145,"src":"6648:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$55140_storage_$","typeString":"mapping(bytes32 => struct CRSRegistry.Record storage ref)"}},"id":55534,"indexExpression":{"id":55533,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55499,"src":"6656:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6648:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$55140_storage","typeString":"struct CRSRegistry.Record storage ref"}},"id":55535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6663:3:62","memberName":"ttl","nodeType":"MemberAccess","referencedDeclaration":55139,"src":"6648:18:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55536,"name":"_ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55503,"src":"6669:4:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6648:25:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":55538,"nodeType":"ExpressionStatement","src":"6648:25:62"},{"eventCall":{"arguments":[{"id":55540,"name":"_node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55499,"src":"6699:5:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55541,"name":"_ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55503,"src":"6706:4:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":55539,"name":"NewTTL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55576,"src":"6692:6:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint64_$returns$__$","typeString":"function (bytes32,uint64)"}},"id":55542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6692:19:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55543,"nodeType":"EmitStatement","src":"6687:24:62"}]}}]},"documentation":{"id":55497,"nodeType":"StructuredDocumentation","src":"6148:197:62","text":" @dev Configure resolver and TTL for a node.\n @param _node The specified node.\n @param _resolver The address of resolver contract.\n @param _ttl TTL for the node."},"implemented":true,"kind":"function","modifiers":[],"name":"_setResolverAndTTL","nameLocation":"6359:18:62","parameters":{"id":55504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55499,"mutability":"mutable","name":"_node","nameLocation":"6386:5:62","nodeType":"VariableDeclaration","scope":55547,"src":"6378:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6378:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55501,"mutability":"mutable","name":"_resolver","nameLocation":"6401:9:62","nodeType":"VariableDeclaration","scope":55547,"src":"6393:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55500,"name":"address","nodeType":"ElementaryTypeName","src":"6393:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55503,"mutability":"mutable","name":"_ttl","nameLocation":"6419:4:62","nodeType":"VariableDeclaration","scope":55547,"src":"6412:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55502,"name":"uint64","nodeType":"ElementaryTypeName","src":"6412:6:62","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6377:47:62"},"returnParameters":{"id":55505,"nodeType":"ParameterList","parameters":[],"src":"6434:0:62"},"scope":55548,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55126,"name":"ICRS","nameLocations":["155:4:62"],"nodeType":"IdentifierPath","referencedDeclaration":55685,"src":"155:4:62"},"id":55127,"nodeType":"InheritanceSpecifier","src":"155:4:62"}],"canonicalName":"CRSRegistry","contractDependencies":[],"contractKind":"contract","documentation":{"id":55125,"nodeType":"StructuredDocumentation","src":"88:42:62","text":" @dev The CRS registry contract."},"fullyImplemented":true,"linearizedBaseContracts":[55548,55685],"name":"CRSRegistry","nameLocation":"140:11:62","scope":55549,"usedErrors":[]}],"license":"BSD-2-Clause"},"id":62}