{
    "schemaVersion": "2.0.0",
    "contractName": "AuthorizedAddresses",
    "compilerOutput": {
        "abi": [
            {
                "constant": false,
                "inputs": [
                    {
                        "internalType": "address",
                        "name": "a",
                        "type": "address"
                    }
                ],
                "name": "authorizeAddress",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [],
                "name": "renounceOwnership",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "owner",
                "outputs": [
                    {
                        "internalType": "address",
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "isOwner",
                "outputs": [
                    {
                        "internalType": "bool",
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "internalType": "address",
                        "name": "a",
                        "type": "address"
                    }
                ],
                "name": "unauthorizeAddress",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "internalType": "address",
                        "name": "a",
                        "type": "address"
                    }
                ],
                "name": "isAddressAuthorized",
                "outputs": [
                    {
                        "internalType": "bool",
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "internalType": "address",
                        "name": "newOwner",
                        "type": "address"
                    }
                ],
                "name": "transferOwnership",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "inputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "constructor"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "internalType": "address",
                        "name": "previousOwner",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "internalType": "address",
                        "name": "newOwner",
                        "type": "address"
                    }
                ],
                "name": "OwnershipTransferred",
                "type": "event"
            }
        ],
        "devdoc": {
            "author": "Freydal",
            "details": "Common registry of system contract addresses authorized to access internal methods.",
            "methods": {
                "authorizeAddress(address)": {
                    "details": "Authorizes the address by setting the mapping value to true.",
                    "params": {
                        "a": "Address to authorize"
                    }
                },
                "constructor": {
                    "details": "Initializes contract with the creators permissions set to true."
                },
                "isAddressAuthorized(address)": {
                    "details": "Verify address authorization.",
                    "params": {
                        "a": "Address to authorize."
                    },
                    "return": "Address authorization"
                },
                "isOwner()": {
                    "return": "true if `msg.sender` is the owner of the contract."
                },
                "owner()": {
                    "return": "the address of the owner."
                },
                "renounceOwnership()": {
                    "details": "Allows the current owner to relinquish control of the contract."
                },
                "transferOwnership(address)": {
                    "details": "Allows the current owner to transfer control of the contract to a newOwner.",
                    "params": {
                        "newOwner": "The address to transfer ownership to."
                    }
                },
                "unauthorizeAddress(address)": {
                    "details": "Disables the address previous authorization by setting the mapping value to false.",
                    "params": {
                        "a": "Address to unauthorize"
                    }
                }
            },
            "title": "AuthorizedAddresses"
        },
        "evm": {
            "bytecode": {
                "linkReferences": {},
                "object": "0x608060405234801561001057600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360018060006100706001600160e01b0361009d16565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556100ac565b6000546001600160a01b031690565b610374806100bb6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f32d59b1161005b5780638f32d59b146100d6578063bbd4845c146100f2578063ced3fb9c14610118578063f2fde38b1461013e5761007d565b80634a5db3b514610082578063715018a6146100aa5780638da5cb5b146100b2575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b0316610164565b005b6100a86101de565b6100ba610239565b604080516001600160a01b039092168252519081900360200190f35b6100de610248565b604080519115158252519081900360200190f35b6100a86004803603602081101561010857600080fd5b50356001600160a01b0316610259565b6100de6004803603602081101561012e57600080fd5b50356001600160a01b0316610296565b6100a86004803603602081101561015457600080fd5b50356001600160a01b03166102b4565b3360009081526001602052604090205460ff166101b7576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6101e6610248565b6101ef57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b3360009081526001602052604090205460ff1661027557600080fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b6102bc610248565b6102c557600080fd5b6102ce816102d1565b50565b6001600160a01b0381166102e457600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fea265627a7a72315820298c6c7d2bb3eb6189e64b84c9ce8349646b08cd3d46604bd05c97407e45c1ff64736f6c634300050b0032",
                "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR DUP1 DUP3 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP2 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP3 SWAP1 LOG3 PUSH1 0x1 DUP1 PUSH1 0x0 PUSH2 0x70 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH2 0x9D AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xAC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x374 DUP1 PUSH2 0xBB PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8F32D59B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8F32D59B EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0xBBD4845C EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0xCED3FB9C EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x13E JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x4A5DB3B5 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x164 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA8 PUSH2 0x1DE JUMP JUMPDEST PUSH2 0xBA PUSH2 0x239 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xDE PUSH2 0x248 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xA8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x259 JUMP JUMPDEST PUSH2 0xDE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x296 JUMP JUMPDEST PUSH2 0xA8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2B4 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x1D5B985D5D1A1BDC9A5E9959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x248 JUMP JUMPDEST PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP4 SWAP1 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x2BC PUSH2 0x248 JUMP JUMPDEST PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CE DUP2 PUSH2 0x2D1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0x29 DUP13 PUSH13 0x7D2BB3EB6189E64B84C9CE8349 PUSH5 0x6B08CD3D46 PUSH1 0x4B 0xd0 0x5c SWAP8 BLOCKHASH PUSH31 0x45C1FF64736F6C634300050B00320000000000000000000000000000000000 ",
                "sourceMap": "237:1438:4:-;;;550:83;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;515:6:1;:19;;-1:-1:-1;;;;;;515:19:1;524:10;515:19;;;;549:40;;-1:-1:-1;;;;;582:6:1;;;;;515;549:40;;515:6;;549:40;622:4:4;;591:28;611:7;-1:-1:-1;;;;;611:5:4;:7;:::i;:::-;-1:-1:-1;;;;;591:28:4;;;;;;;;;;;;-1:-1:-1;591:28:4;:35;;-1:-1:-1;;591:35:4;;;;;;;;;;237:1438;;659:77:1;697:7;723:6;-1:-1:-1;;;;;723:6:1;659:77;:::o;237:1438:4:-;;;;;;;"
            },
            "deployedBytecode": {
                "linkReferences": {},
                "object": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f32d59b1161005b5780638f32d59b146100d6578063bbd4845c146100f2578063ced3fb9c14610118578063f2fde38b1461013e5761007d565b80634a5db3b514610082578063715018a6146100aa5780638da5cb5b146100b2575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b0316610164565b005b6100a86101de565b6100ba610239565b604080516001600160a01b039092168252519081900360200190f35b6100de610248565b604080519115158252519081900360200190f35b6100a86004803603602081101561010857600080fd5b50356001600160a01b0316610259565b6100de6004803603602081101561012e57600080fd5b50356001600160a01b0316610296565b6100a86004803603602081101561015457600080fd5b50356001600160a01b03166102b4565b3360009081526001602052604090205460ff166101b7576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6101e6610248565b6101ef57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b3360009081526001602052604090205460ff1661027557600080fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b6001600160a01b031660009081526001602052604090205460ff1690565b6102bc610248565b6102c557600080fd5b6102ce816102d1565b50565b6001600160a01b0381166102e457600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fea265627a7a72315820298c6c7d2bb3eb6189e64b84c9ce8349646b08cd3d46604bd05c97407e45c1ff64736f6c634300050b0032",
                "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8F32D59B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8F32D59B EQ PUSH2 0xD6 JUMPI DUP1 PUSH4 0xBBD4845C EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0xCED3FB9C EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x13E JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x4A5DB3B5 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x164 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA8 PUSH2 0x1DE JUMP JUMPDEST PUSH2 0xBA PUSH2 0x239 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xDE PUSH2 0x248 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xA8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x259 JUMP JUMPDEST PUSH2 0xDE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x296 JUMP JUMPDEST PUSH2 0xA8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x154 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2B4 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH12 0x1D5B985D5D1A1BDC9A5E9959 PUSH1 0xA2 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1E6 PUSH2 0x248 JUMP JUMPDEST PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP4 SWAP1 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x2BC PUSH2 0x248 JUMP JUMPDEST PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CE DUP2 PUSH2 0x2D1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0x29 DUP13 PUSH13 0x7D2BB3EB6189E64B84C9CE8349 PUSH5 0x6B08CD3D46 PUSH1 0x4B 0xd0 0x5c SWAP8 BLOCKHASH PUSH31 0x45C1FF64736F6C634300050B00320000000000000000000000000000000000 ",
                "sourceMap": "237:1438:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:1438:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;835:156;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;835:156:4;-1:-1:-1;;;;;835:156:4;;:::i;:::-;;1347:137:1;;;:::i;659:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;659:77:1;;;;;;;;;;;;;;979:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;1238:143:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1238:143:4;-1:-1:-1;;;;;1238:143:4;;:::i;1560:113::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1560:113:4;-1:-1:-1;;;;;1560:113:4;;:::i;1655:107:1:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1655:107:1;-1:-1:-1;;;;;1655:107:1;;:::i;835:156:4:-;917:10;897:31;;;;:19;:31;;;;;;;;889:56;;;;;-1:-1:-1;;;889:56:4;;;;;;;;;;;;-1:-1:-1;;;889:56:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;955:22:4;;;;;980:4;955:22;;;;;;;;:29;;-1:-1:-1;;955:29:4;;;;;;835:156::o;1347:137:1:-;863:9;:7;:9::i;:::-;855:18;;;;;;1445:1;1429:6;;1408:40;;-1:-1:-1;;;;;1429:6:1;;;;1408:40;;1445:1;;1408:40;1475:1;1458:19;;-1:-1:-1;;;;;;1458:19:1;;;1347:137::o;659:77::-;697:7;723:6;-1:-1:-1;;;;;723:6:1;659:77;:::o;979:90::-;1019:4;1056:6;-1:-1:-1;;;;;1056:6:1;1042:10;:20;;979:90::o;1238:143:4:-;1322:10;1302:31;;;;:19;:31;;;;;;;;1294:40;;;;;;-1:-1:-1;;;;;1344:22:4;1369:5;1344:22;;;:19;:22;;;;;:30;;-1:-1:-1;;1344:30:4;;;1238:143::o;1560:113::-;-1:-1:-1;;;;;1644:22:4;1621:4;1644:22;;;:19;:22;;;;;;;;;1560:113::o;1655:107:1:-;863:9;:7;:9::i;:::-;855:18;;;;;;1727:28;1746:8;1727:18;:28::i;:::-;1655:107;:::o;1906:183::-;-1:-1:-1;;;;;1979:22:1;;1971:31;;;;;;2038:6;;;2017:38;;-1:-1:-1;;;;;2017:38:1;;;;2038:6;;;2017:38;;;2065:6;:17;;-1:-1:-1;;;;;;2065:17:1;-1:-1:-1;;;;;2065:17:1;;;;;;;;;;1906:183::o"
            }
        }
    },
    "sources": {
        "access_control/AuthorizedAddresses.sol": {
            "id": 4
        },
        "openzeppelin-solidity/contracts/ownership/Ownable.sol": {
            "id": 1
        }
    },
    "sourceCodes": {
        "access_control/AuthorizedAddresses.sol": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n/** @title AuthorizedAddresses\n    @author Freydal\n    @dev Common registry of system contract addresses authorized to access internal methods.\n*/\ncontract AuthorizedAddresses is Ownable {\n\n    // Mapping storing address permissions\n    mapping(address => bool) private authorizedAddresses;\n\n    /** @dev Initializes contract with the creators permissions set to true.\n        @notice Initializes contract with the creators permissions set to true.\n    */\n    constructor() Ownable() public {\n        authorizedAddresses[owner()] = true;\n    }\n\n    /** @dev Authorizes the address by setting the mapping value to true.\n        @notice Authorizes the address by setting the mapping value to true.\n        @param a Address to authorize\n    */\n    function authorizeAddress(address a) public {\n        require(authorizedAddresses[msg.sender], \"unauthorized\");\n        authorizedAddresses[a] = true;\n    }\n\n    /** @dev Disables the address previous authorization by setting the mapping value to false.\n        @notice Disables the address previous authorization by setting the mapping value to false\n        @param a Address to unauthorize\n    */\n    function unauthorizeAddress(address a) public {\n        require(authorizedAddresses[msg.sender]);\n        authorizedAddresses[a] = false;\n    }\n\n    /** @dev Verify address authorization.\n        @notice Verify address authorization.\n        @param a Address to authorize.\n        @return Address authorization\n    */\n    function isAddressAuthorized(address a) public view returns (bool) {\n        return authorizedAddresses[a];\n    }\n}\n",
        "openzeppelin-solidity/contracts/ownership/Ownable.sol": "pragma solidity ^0.5.0;\n\n/**\n * @title Ownable\n * @dev The Ownable contract has an owner address, and provides basic authorization control\n * functions, this simplifies the implementation of \"user permissions\".\n */\ncontract Ownable {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n     * account.\n     */\n    constructor () internal {\n        _owner = msg.sender;\n        emit OwnershipTransferred(address(0), _owner);\n    }\n\n    /**\n     * @return the address of the owner.\n     */\n    function owner() public view returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        require(isOwner());\n        _;\n    }\n\n    /**\n     * @return true if `msg.sender` is the owner of the contract.\n     */\n    function isOwner() public view returns (bool) {\n        return msg.sender == _owner;\n    }\n\n    /**\n     * @dev Allows the current owner to relinquish control of the contract.\n     * @notice Renouncing to ownership will leave the contract without an owner.\n     * It will not be possible to call the functions with the `onlyOwner`\n     * modifier anymore.\n     */\n    function renounceOwnership() public onlyOwner {\n        emit OwnershipTransferred(_owner, address(0));\n        _owner = address(0);\n    }\n\n    /**\n     * @dev Allows the current owner to transfer control of the contract to a newOwner.\n     * @param newOwner The address to transfer ownership to.\n     */\n    function transferOwnership(address newOwner) public onlyOwner {\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers control of the contract to a newOwner.\n     * @param newOwner The address to transfer ownership to.\n     */\n    function _transferOwnership(address newOwner) internal {\n        require(newOwner != address(0));\n        emit OwnershipTransferred(_owner, newOwner);\n        _owner = newOwner;\n    }\n}\n"
    },
    "sourceTreeHashHex": "0x08cde08fe6bb6b3951e5be95b07b891cc8debd1cbed2e573fdf53340c4df2fcd",
    "compiler": {
        "name": "solc",
        "version": "soljson-v0.5.11+commit.c082d0b4.js",
        "settings": {
            "optimizer": {
                "enabled": true,
                "runs": 200,
                "details": {
                    "yul": true,
                    "deduplicate": true,
                    "cse": true,
                    "constantOptimizer": true
                }
            },
            "outputSelection": {
                "*": {
                    "*": [
                        "abi",
                        "devdoc",
                        "evm.bytecode.object",
                        "evm.bytecode.sourceMap",
                        "evm.deployedBytecode.object",
                        "evm.deployedBytecode.sourceMap"
                    ]
                }
            },
            "evmVersion": "constantinople",
            "remappings": [
                "openzeppelin-solidity=/Users/hen/GitHub/km/node_modules/openzeppelin-solidity"
            ]
        }
    },
    "networks": {}
}
