{
    "_format": "hh-sol-artifact-1",
    "contractName": "NodeRegistry",
    "sourceName": "contracts/NodeRegistry/NodeRegistry.sol",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "previousAdmin",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "newAdmin",
                    "type": "address"
                }
            ],
            "name": "AdminChanged",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "beacon",
                    "type": "address"
                }
            ],
            "name": "BeaconUpgraded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "NodeRemoved",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "metadata",
                    "type": "string"
                },
                {
                    "indexed": true,
                    "internalType": "uint256",
                    "name": "isNew",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "lastSeen",
                    "type": "uint256"
                }
            ],
            "name": "NodeUpdated",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "NodeWhitelistApproved",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "NodeWhitelistRejected",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bool",
                    "name": "value",
                    "type": "bool"
                }
            ],
            "name": "RequiresWhitelistChanged",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "implementation",
                    "type": "address"
                }
            ],
            "name": "Upgraded",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "node",
                    "type": "address"
                },
                {
                    "internalType": "string",
                    "name": "metadata_",
                    "type": "string"
                }
            ],
            "name": "createOrUpdateNode",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "string",
                    "name": "metadata_",
                    "type": "string"
                }
            ],
            "name": "createOrUpdateNodeSelf",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "getNode",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "nodeAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "string",
                            "name": "metadata",
                            "type": "string"
                        },
                        {
                            "internalType": "uint256",
                            "name": "lastSeen",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct NodeRegistry.Node",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "i",
                    "type": "uint256"
                }
            ],
            "name": "getNodeByNumber",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "nodeAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "string",
                            "name": "metadata",
                            "type": "string"
                        },
                        {
                            "internalType": "uint256",
                            "name": "lastSeen",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct NodeRegistry.Node",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "getNodes",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "nodeAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "string",
                            "name": "metadata",
                            "type": "string"
                        },
                        {
                            "internalType": "uint256",
                            "name": "lastSeen",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct NodeRegistry.Node[]",
                    "name": "",
                    "type": "tuple[]"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "headNode",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "bool",
                    "name": "requiresWhitelist_",
                    "type": "bool"
                },
                {
                    "internalType": "address[]",
                    "name": "initialNodes",
                    "type": "address[]"
                },
                {
                    "internalType": "string[]",
                    "name": "initialMetadata",
                    "type": "string[]"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "kickOut",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "nodeCount",
            "outputs": [
                {
                    "internalType": "uint64",
                    "name": "",
                    "type": "uint64"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "nodes",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "nodeAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "string",
                            "name": "metadata",
                            "type": "string"
                        },
                        {
                            "internalType": "uint256",
                            "name": "lastSeen",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct NodeRegistry.Node",
                    "name": "node",
                    "type": "tuple"
                },
                {
                    "internalType": "address",
                    "name": "next",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "prev",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "proxiableUUID",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "removeNode",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "removeNodeSelf",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "requiresWhitelist",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bool",
                    "name": "value",
                    "type": "bool"
                }
            ],
            "name": "setRequiresWhitelist",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "tailNode",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newImplementation",
                    "type": "address"
                }
            ],
            "name": "upgradeTo",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newImplementation",
                    "type": "address"
                },
                {
                    "internalType": "bytes",
                    "name": "data",
                    "type": "bytes"
                }
            ],
            "name": "upgradeToAndCall",
            "outputs": [],
            "stateMutability": "payable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "whitelist",
            "outputs": [
                {
                    "internalType": "enum NodeRegistry.WhitelistState",
                    "name": "",
                    "type": "uint8"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "whitelistApproveNode",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "whitelistRejectNode",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161232b61004c60003960008181610658015281816106a10152818161072a0152818161076a01526107e6015261232b6000f3fe60806040526004361061014b5760003560e01c80638da5cb5b116100b6578063b2b99ec91161006f578063b2b99ec9146103fe578063bfdf08661461041e578063e29581aa14610445578063e670c15d14610467578063ecf274da1461047c578063f2fde38b1461049c57600080fd5b80638da5cb5b1461030557806399e68eea146103235780639b19251a146103435780639d20904814610380578063a5ee5b41146103ad578063ae5b4961146103de57600080fd5b806352d1902d1161010857806352d1902d146102355780635668c8fb146102585780635888799c146102785780635d8f7f2a146102985780636da49b83146102b8578063715018a6146102f057600080fd5b8063189a5a171461015057806320a59a03146101885780632af57580146101aa5780633659cfe6146101ca57806346c198f6146101ea5780634f1ef28614610222575b600080fd5b34801561015c57600080fd5b5061017061016b366004611b06565b6104bc565b60405161017f93929190611bb4565b60405180910390f35b34801561019457600080fd5b506101a86101a3366004611bf7565b6105a8565b005b3480156101b657600080fd5b506101a86101c5366004611b06565b6105f9565b3480156101d657600080fd5b506101a86101e5366004611b06565b61064d565b3480156101f657600080fd5b5060ca5461020a906001600160a01b031681565b6040516001600160a01b03909116815260200161017f565b6101a8610230366004611caf565b61071f565b34801561024157600080fd5b5061024a6107d9565b60405190815260200161017f565b34801561026457600080fd5b506101a8610273366004611b06565b610887565b34801561028457600080fd5b506101a8610293366004611b06565b6108a1565b3480156102a457600080fd5b506101a86102b3366004611d30565b6108f5565b3480156102c457600080fd5b5060c9546102d8906001600160401b031681565b6040516001600160401b03909116815260200161017f565b3480156102fc57600080fd5b506101a8610907565b34801561031157600080fd5b506097546001600160a01b031661020a565b34801561032f57600080fd5b506101a861033e366004611d73565b61091b565b34801561034f57600080fd5b5061037361035e366004611b06565b60cc6020526000908152604090205460ff1681565b60405161017f9190611dbd565b34801561038c57600080fd5b506103a061039b366004611b06565b6109a1565b60405161017f9190611de5565b3480156103b957600080fd5b5060ca546103ce90600160a01b900460ff1681565b604051901515815260200161017f565b3480156103ea57600080fd5b506103a06103f9366004611df8565b610a7f565b34801561040a57600080fd5b506101a8610419366004611b06565b610bf5565b34801561042a57600080fd5b5060c95461020a90600160401b90046001600160a01b031681565b34801561045157600080fd5b5061045a610c06565b60405161017f9190611e11565b34801561047357600080fd5b506101a8610d9d565b34801561048857600080fd5b506101a8610497366004611f25565b610da6565b3480156104a857600080fd5b506101a86104b7366004611b06565b610f86565b60cb6020908152600091825260409182902082516060810190935280546001600160a01b03168352600181018054919392849290840191906104fd90612007565b80601f016020809104026020016040519081016040528092919081815260200182805461052990612007565b80156105765780601f1061054b57610100808354040283529160200191610576565b820191906000526020600020905b81548152906001019060200180831161055957829003601f168201915b505050918352505060029190910154602090910152600382015460049092015490916001600160a01b03908116911683565b6105b0610ffc565b60ca805460ff60a01b1916600160a01b831515908102919091179091556040517f7623db9c426686f05cec977c4cadb8ff9657502540ca665ae347731114dac69d90600090a250565b610601610ffc565b6001600160a01b038116600081815260cc6020526040808220805460ff19166002179055517fbbe2a784aa6240d8175fa65a8459058efd8f44c5ab66caa2525fe9d6342108789190a250565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561069f5760405162461bcd60e51b815260040161069690612042565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106d1611056565b6001600160a01b0316146106f75760405162461bcd60e51b81526004016106969061208e565b61070081611072565b6040805160008082526020820190925261071c9183919061107a565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107685760405162461bcd60e51b815260040161069690612042565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661079a611056565b6001600160a01b0316146107c05760405162461bcd60e51b81526004016106969061208e565b6107c982611072565b6107d58282600161107a565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108745760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610696565b506000805160206122af83398151915290565b61088f610ffc565b610898816105f9565b61071c81610bf5565b6108a9610ffc565b6001600160a01b038116600081815260cc6020526040808220805460ff19166001179055517fdfe83f699699403a4b116b6f9504680228c3f319bbf5ab26b48a81d3005d98b29190a250565b6108fd610ffc565b6107d582826111f9565b61090f610ffc565b6109196000611444565b565b60ca54600160a01b900460ff1615806109575750600133600090815260cc602052604090205460ff16600281111561095557610955611da7565b145b6109975760405162461bcd60e51b8152602060048201526011602482015270195c9c9bdc97db9bdd105c1c1c9bdd9959607a1b6044820152606401610696565b61071c33826111f9565b6109a96119f1565b6001600160a01b03808316600090815260cb6020908152604091829020825160608101909352805490931682526001830180548492840191906109eb90612007565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1790612007565b8015610a645780601f10610a3957610100808354040283529160200191610a64565b820191906000526020600020905b815481529060010190602001808311610a4757829003601f168201915b50505050508152602001600282015481525050915050919050565b610a876119f1565b60c9546001600160401b03168210610ada5760405162461bcd60e51b81526020600482015260166024820152756572726f725f696e6465784f75744f66426f756e647360501b6044820152606401610696565b60ca546001600160a01b0316600081815260cb6020526040902060015b848111610b31576003909101546001600160a01b0316600081815260cb602052604090209092509080610b29816120f0565b915050610af7565b50604080516060810190915281546001600160a01b0316815260018201805483916020840191610b6090612007565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8c90612007565b8015610bd95780601f10610bae57610100808354040283529160200191610bd9565b820191906000526020600020905b815481529060010190602001808311610bbc57829003601f168201915b5050505050815260200160028201548152505092505050919050565b610bfd610ffc565b61071c81611496565b60c9546060906000906001600160401b0390811690811115610c2a57610c2a611c12565b604051908082528060200260200182016040528015610c6357816020015b610c506119f1565b815260200190600190039081610c485790505b5060ca549091506001600160a01b031660005b60c9546001600160401b0316811015610d95576001600160a01b03808316600090815260cb602090815260409182902082516060810190935280549093168252600183018054849284019190610ccb90612007565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf790612007565b8015610d445780601f10610d1957610100808354040283529160200191610d44565b820191906000526020600020905b815481529060010190602001808311610d2757829003601f168201915b50505050508152602001600282015481525050848381518110610d6957610d6961210b565b6020908102919091010152600301546001600160a01b0316915080610d8d816120f0565b915050610c76565b509092915050565b61091933611496565b600054610100900460ff1615808015610dc65750600054600160ff909116105b80610de05750303b158015610de0575060005460ff166001145b610e435760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610696565b6000805460ff191660011790558015610e66576000805461ff0019166101001790555b610e6e611718565b610e76611747565b60ca805460ff60a01b1916600160a01b861515021790558151835114610ed55760405162461bcd60e51b81526020600482015260146024820152736572726f725f626164547261636b65724461746160601b6044820152606401610696565b60005b8351811015610f2f57610f1d848281518110610ef657610ef661210b565b6020026020010151848381518110610f1057610f1061210b565b60200260200101516108f5565b80610f27816120f0565b915050610ed8565b50610f3985610f86565b8015610f7f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610f8e610ffc565b6001600160a01b038116610ff35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610696565b61071c81611444565b6097546001600160a01b031633146109195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610696565b6000805160206122af833981519152546001600160a01b031690565b61071c610ffc565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110b2576110ad8361176e565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110eb57600080fd5b505afa92505050801561111b575060408051601f3d908101601f1916820190925261111891810190612121565b60015b61117e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610696565b6000805160206122af83398151915281146111ed5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610696565b506110ad83838361180a565b6001600160a01b038216600090815260cb6020526040812060028101549091906113d357506040805160c0810182526001600160a01b0385811660608301818152608084018790524260a085015283526000602080850182905260c954600160401b900484168587015291815260cb8252939093208251805182546001600160a01b031916931692909217815581840151805160019592939284926112a692888501929190910190611a1b565b506040918201516002919091015560208301516003830180546001600160a01b03199081166001600160a01b0393841617909155939091015160049092018054909316911617905560c980546001600160401b03169060006113078361213a565b82546001600160401b039182166101009390930a92830291909202199091161790555060c954600160401b90046001600160a01b03161561137e5760c954600160401b90046001600160a01b03908116600090815260cb6020526040902060030180546001600160a01b0319169186169190911790555b60ca546001600160a01b03166113aa5760ca80546001600160a01b0319166001600160a01b0386161790555b60c98054600160401b600160e01b031916600160401b6001600160a01b038716021790556113f0565b82516113e89060018401906020860190611a1b565b504260028301555b600282015460405182916001600160a01b038716917f7b8ea65757bf0d882563917834f76c4df069ea7e489c9fc65bf764289792e3349161143691600188019190612161565b60405180910390a350505050565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116600090815260cb6020526040902060028101546114f05760405162461bcd60e51b815260206004820152600e60248201526d195c9c9bdc97db9bdd119bdd5b9960921b6044820152606401610696565b60048101546001600160a01b03161561153d5760048101546001600160a01b03908116600090815260cb60205260409020600380840154910180546001600160a01b031916919092161790555b60038101546001600160a01b03161561158a5760038101546001600160a01b03908116600090815260cb60205260409020600480840154910180546001600160a01b031916919092161790555b60c980546001600160401b03169060006115a383612211565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505060c960089054906101000a90046001600160a01b03166001600160a01b0316826001600160a01b031614156116365760c980546001600160a01b03600160401b8083048216600090815260cb602052604090206004015490911602600160401b600160e01b03199091161790555b60ca546001600160a01b038381169116141561167e5760ca80546001600160a01b03808216600090815260cb6020526040902060030154166001600160a01b03199091161790555b6001600160a01b038216600090815260cb6020526040812080546001600160a01b03191681559081816116b46001830182611a9f565b5060006002919091018190556003830180546001600160a01b031990811690915560049093018054909316909255506040516001600160a01b038416917fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b91a25050565b600054610100900460ff1661173f5760405162461bcd60e51b815260040161069690612234565b610919611835565b600054610100900460ff166109195760405162461bcd60e51b815260040161069690612234565b6001600160a01b0381163b6117db5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610696565b6000805160206122af83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61181383611865565b6000825111806118205750805b156110ad5761182f83836118a5565b50505050565b600054610100900460ff1661185c5760405162461bcd60e51b815260040161069690612234565b61091933611444565b61186e8161176e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606118ca83836040518060600160405280602781526020016122cf602791396118d1565b9392505050565b6060600080856001600160a01b0316856040516118ee919061227f565b600060405180830381855af49150503d8060008114611929576040519150601f19603f3d011682016040523d82523d6000602084013e61192e565b606091505b509150915061193f86838387611949565b9695505050505050565b606083156119b55782516119ae576001600160a01b0385163b6119ae5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610696565b50816119bf565b6119bf83836119c7565b949350505050565b8151156119d75781518083602001fd5b8060405162461bcd60e51b8152600401610696919061229b565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b828054611a2790612007565b90600052602060002090601f016020900481019282611a495760008555611a8f565b82601f10611a6257805160ff1916838001178555611a8f565b82800160010185558215611a8f579182015b82811115611a8f578251825591602001919060010190611a74565b50611a9b929150611ad5565b5090565b508054611aab90612007565b6000825580601f10611abb575050565b601f01602090049060005260206000209081019061071c91905b5b80821115611a9b5760008155600101611ad6565b80356001600160a01b0381168114611b0157600080fd5b919050565b600060208284031215611b1857600080fd5b6118ca82611aea565b60005b83811015611b3c578181015183820152602001611b24565b8381111561182f5750506000910152565b60008151808452611b65816020860160208601611b21565b601f01601f19169290920160200192915050565b60018060a01b0381511682526000602082015160606020850152611ba06060850182611b4d565b604093840151949093019390935250919050565b606081526000611bc76060830186611b79565b6001600160a01b0394851660208401529290931660409091015292915050565b80358015158114611b0157600080fd5b600060208284031215611c0957600080fd5b6118ca82611be7565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c5057611c50611c12565b604052919050565b60006001600160401b03831115611c7157611c71611c12565b611c84601f8401601f1916602001611c28565b9050828152838383011115611c9857600080fd5b828260208301376000602084830101529392505050565b60008060408385031215611cc257600080fd5b611ccb83611aea565b915060208301356001600160401b03811115611ce657600080fd5b8301601f81018513611cf757600080fd5b611d0685823560208401611c58565b9150509250929050565b600082601f830112611d2157600080fd5b6118ca83833560208501611c58565b60008060408385031215611d4357600080fd5b611d4c83611aea565b915060208301356001600160401b03811115611d6757600080fd5b611d0685828601611d10565b600060208284031215611d8557600080fd5b81356001600160401b03811115611d9b57600080fd5b6119bf84828501611d10565b634e487b7160e01b600052602160045260246000fd5b6020810160038310611ddf57634e487b7160e01b600052602160045260246000fd5b91905290565b6020815260006118ca6020830184611b79565b600060208284031215611e0a57600080fd5b5035919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015611e6657603f19888603018452611e54858351611b79565b94509285019290850190600101611e38565b5092979650505050505050565b60006001600160401b03821115611e8c57611e8c611c12565b5060051b60200190565b600082601f830112611ea757600080fd5b81356020611ebc611eb783611e73565b611c28565b82815260059290921b84018101918181019086841115611edb57600080fd5b8286015b84811015611f1a5780356001600160401b03811115611efe5760008081fd5b611f0c8986838b0101611d10565b845250918301918301611edf565b509695505050505050565b60008060008060808587031215611f3b57600080fd5b611f4485611aea565b93506020611f53818701611be7565b935060408601356001600160401b0380821115611f6f57600080fd5b818801915088601f830112611f8357600080fd5b8135611f91611eb782611e73565b81815260059190911b8301840190848101908b831115611fb057600080fd5b938501935b82851015611fd557611fc685611aea565b82529385019390850190611fb5565b965050506060880135925080831115611fed57600080fd5b5050611ffb87828801611e96565b91505092959194509250565b600181811c9082168061201b57607f821691505b6020821081141561203c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600019821415612104576121046120da565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213357600080fd5b5051919050565b60006001600160401b0380831681811415612157576121576120da565b6001019392505050565b60408152600080845481600182811c91508083168061218157607f831692505b60208084108214156121a157634e487b7160e01b86526022600452602486fd5b60408801849052606088018280156121c057600181146121d1576121fc565b60ff198716825282820197506121fc565b60008c81526020902060005b878110156121f6578154848201529086019084016121dd565b83019850505b50509690960196909652509095945050505050565b60006001600160401b0382168061222a5761222a6120da565b6000190192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251612291818460208701611b21565b9190910192915050565b6020815260006118ca6020830184611b4d56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122031a8d47163093653802cc61e0927314f9974feb2480790836afebda72f5316b064736f6c63430008090033",
    "deployedBytecode": "0x60806040526004361061014b5760003560e01c80638da5cb5b116100b6578063b2b99ec91161006f578063b2b99ec9146103fe578063bfdf08661461041e578063e29581aa14610445578063e670c15d14610467578063ecf274da1461047c578063f2fde38b1461049c57600080fd5b80638da5cb5b1461030557806399e68eea146103235780639b19251a146103435780639d20904814610380578063a5ee5b41146103ad578063ae5b4961146103de57600080fd5b806352d1902d1161010857806352d1902d146102355780635668c8fb146102585780635888799c146102785780635d8f7f2a146102985780636da49b83146102b8578063715018a6146102f057600080fd5b8063189a5a171461015057806320a59a03146101885780632af57580146101aa5780633659cfe6146101ca57806346c198f6146101ea5780634f1ef28614610222575b600080fd5b34801561015c57600080fd5b5061017061016b366004611b06565b6104bc565b60405161017f93929190611bb4565b60405180910390f35b34801561019457600080fd5b506101a86101a3366004611bf7565b6105a8565b005b3480156101b657600080fd5b506101a86101c5366004611b06565b6105f9565b3480156101d657600080fd5b506101a86101e5366004611b06565b61064d565b3480156101f657600080fd5b5060ca5461020a906001600160a01b031681565b6040516001600160a01b03909116815260200161017f565b6101a8610230366004611caf565b61071f565b34801561024157600080fd5b5061024a6107d9565b60405190815260200161017f565b34801561026457600080fd5b506101a8610273366004611b06565b610887565b34801561028457600080fd5b506101a8610293366004611b06565b6108a1565b3480156102a457600080fd5b506101a86102b3366004611d30565b6108f5565b3480156102c457600080fd5b5060c9546102d8906001600160401b031681565b6040516001600160401b03909116815260200161017f565b3480156102fc57600080fd5b506101a8610907565b34801561031157600080fd5b506097546001600160a01b031661020a565b34801561032f57600080fd5b506101a861033e366004611d73565b61091b565b34801561034f57600080fd5b5061037361035e366004611b06565b60cc6020526000908152604090205460ff1681565b60405161017f9190611dbd565b34801561038c57600080fd5b506103a061039b366004611b06565b6109a1565b60405161017f9190611de5565b3480156103b957600080fd5b5060ca546103ce90600160a01b900460ff1681565b604051901515815260200161017f565b3480156103ea57600080fd5b506103a06103f9366004611df8565b610a7f565b34801561040a57600080fd5b506101a8610419366004611b06565b610bf5565b34801561042a57600080fd5b5060c95461020a90600160401b90046001600160a01b031681565b34801561045157600080fd5b5061045a610c06565b60405161017f9190611e11565b34801561047357600080fd5b506101a8610d9d565b34801561048857600080fd5b506101a8610497366004611f25565b610da6565b3480156104a857600080fd5b506101a86104b7366004611b06565b610f86565b60cb6020908152600091825260409182902082516060810190935280546001600160a01b03168352600181018054919392849290840191906104fd90612007565b80601f016020809104026020016040519081016040528092919081815260200182805461052990612007565b80156105765780601f1061054b57610100808354040283529160200191610576565b820191906000526020600020905b81548152906001019060200180831161055957829003601f168201915b505050918352505060029190910154602090910152600382015460049092015490916001600160a01b03908116911683565b6105b0610ffc565b60ca805460ff60a01b1916600160a01b831515908102919091179091556040517f7623db9c426686f05cec977c4cadb8ff9657502540ca665ae347731114dac69d90600090a250565b610601610ffc565b6001600160a01b038116600081815260cc6020526040808220805460ff19166002179055517fbbe2a784aa6240d8175fa65a8459058efd8f44c5ab66caa2525fe9d6342108789190a250565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561069f5760405162461bcd60e51b815260040161069690612042565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106d1611056565b6001600160a01b0316146106f75760405162461bcd60e51b81526004016106969061208e565b61070081611072565b6040805160008082526020820190925261071c9183919061107a565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107685760405162461bcd60e51b815260040161069690612042565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661079a611056565b6001600160a01b0316146107c05760405162461bcd60e51b81526004016106969061208e565b6107c982611072565b6107d58282600161107a565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108745760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610696565b506000805160206122af83398151915290565b61088f610ffc565b610898816105f9565b61071c81610bf5565b6108a9610ffc565b6001600160a01b038116600081815260cc6020526040808220805460ff19166001179055517fdfe83f699699403a4b116b6f9504680228c3f319bbf5ab26b48a81d3005d98b29190a250565b6108fd610ffc565b6107d582826111f9565b61090f610ffc565b6109196000611444565b565b60ca54600160a01b900460ff1615806109575750600133600090815260cc602052604090205460ff16600281111561095557610955611da7565b145b6109975760405162461bcd60e51b8152602060048201526011602482015270195c9c9bdc97db9bdd105c1c1c9bdd9959607a1b6044820152606401610696565b61071c33826111f9565b6109a96119f1565b6001600160a01b03808316600090815260cb6020908152604091829020825160608101909352805490931682526001830180548492840191906109eb90612007565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1790612007565b8015610a645780601f10610a3957610100808354040283529160200191610a64565b820191906000526020600020905b815481529060010190602001808311610a4757829003601f168201915b50505050508152602001600282015481525050915050919050565b610a876119f1565b60c9546001600160401b03168210610ada5760405162461bcd60e51b81526020600482015260166024820152756572726f725f696e6465784f75744f66426f756e647360501b6044820152606401610696565b60ca546001600160a01b0316600081815260cb6020526040902060015b848111610b31576003909101546001600160a01b0316600081815260cb602052604090209092509080610b29816120f0565b915050610af7565b50604080516060810190915281546001600160a01b0316815260018201805483916020840191610b6090612007565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8c90612007565b8015610bd95780601f10610bae57610100808354040283529160200191610bd9565b820191906000526020600020905b815481529060010190602001808311610bbc57829003601f168201915b5050505050815260200160028201548152505092505050919050565b610bfd610ffc565b61071c81611496565b60c9546060906000906001600160401b0390811690811115610c2a57610c2a611c12565b604051908082528060200260200182016040528015610c6357816020015b610c506119f1565b815260200190600190039081610c485790505b5060ca549091506001600160a01b031660005b60c9546001600160401b0316811015610d95576001600160a01b03808316600090815260cb602090815260409182902082516060810190935280549093168252600183018054849284019190610ccb90612007565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf790612007565b8015610d445780601f10610d1957610100808354040283529160200191610d44565b820191906000526020600020905b815481529060010190602001808311610d2757829003601f168201915b50505050508152602001600282015481525050848381518110610d6957610d6961210b565b6020908102919091010152600301546001600160a01b0316915080610d8d816120f0565b915050610c76565b509092915050565b61091933611496565b600054610100900460ff1615808015610dc65750600054600160ff909116105b80610de05750303b158015610de0575060005460ff166001145b610e435760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610696565b6000805460ff191660011790558015610e66576000805461ff0019166101001790555b610e6e611718565b610e76611747565b60ca805460ff60a01b1916600160a01b861515021790558151835114610ed55760405162461bcd60e51b81526020600482015260146024820152736572726f725f626164547261636b65724461746160601b6044820152606401610696565b60005b8351811015610f2f57610f1d848281518110610ef657610ef661210b565b6020026020010151848381518110610f1057610f1061210b565b60200260200101516108f5565b80610f27816120f0565b915050610ed8565b50610f3985610f86565b8015610f7f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610f8e610ffc565b6001600160a01b038116610ff35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610696565b61071c81611444565b6097546001600160a01b031633146109195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610696565b6000805160206122af833981519152546001600160a01b031690565b61071c610ffc565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110b2576110ad8361176e565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110eb57600080fd5b505afa92505050801561111b575060408051601f3d908101601f1916820190925261111891810190612121565b60015b61117e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610696565b6000805160206122af83398151915281146111ed5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610696565b506110ad83838361180a565b6001600160a01b038216600090815260cb6020526040812060028101549091906113d357506040805160c0810182526001600160a01b0385811660608301818152608084018790524260a085015283526000602080850182905260c954600160401b900484168587015291815260cb8252939093208251805182546001600160a01b031916931692909217815581840151805160019592939284926112a692888501929190910190611a1b565b506040918201516002919091015560208301516003830180546001600160a01b03199081166001600160a01b0393841617909155939091015160049092018054909316911617905560c980546001600160401b03169060006113078361213a565b82546001600160401b039182166101009390930a92830291909202199091161790555060c954600160401b90046001600160a01b03161561137e5760c954600160401b90046001600160a01b03908116600090815260cb6020526040902060030180546001600160a01b0319169186169190911790555b60ca546001600160a01b03166113aa5760ca80546001600160a01b0319166001600160a01b0386161790555b60c98054600160401b600160e01b031916600160401b6001600160a01b038716021790556113f0565b82516113e89060018401906020860190611a1b565b504260028301555b600282015460405182916001600160a01b038716917f7b8ea65757bf0d882563917834f76c4df069ea7e489c9fc65bf764289792e3349161143691600188019190612161565b60405180910390a350505050565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116600090815260cb6020526040902060028101546114f05760405162461bcd60e51b815260206004820152600e60248201526d195c9c9bdc97db9bdd119bdd5b9960921b6044820152606401610696565b60048101546001600160a01b03161561153d5760048101546001600160a01b03908116600090815260cb60205260409020600380840154910180546001600160a01b031916919092161790555b60038101546001600160a01b03161561158a5760038101546001600160a01b03908116600090815260cb60205260409020600480840154910180546001600160a01b031916919092161790555b60c980546001600160401b03169060006115a383612211565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505060c960089054906101000a90046001600160a01b03166001600160a01b0316826001600160a01b031614156116365760c980546001600160a01b03600160401b8083048216600090815260cb602052604090206004015490911602600160401b600160e01b03199091161790555b60ca546001600160a01b038381169116141561167e5760ca80546001600160a01b03808216600090815260cb6020526040902060030154166001600160a01b03199091161790555b6001600160a01b038216600090815260cb6020526040812080546001600160a01b03191681559081816116b46001830182611a9f565b5060006002919091018190556003830180546001600160a01b031990811690915560049093018054909316909255506040516001600160a01b038416917fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b91a25050565b600054610100900460ff1661173f5760405162461bcd60e51b815260040161069690612234565b610919611835565b600054610100900460ff166109195760405162461bcd60e51b815260040161069690612234565b6001600160a01b0381163b6117db5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610696565b6000805160206122af83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61181383611865565b6000825111806118205750805b156110ad5761182f83836118a5565b50505050565b600054610100900460ff1661185c5760405162461bcd60e51b815260040161069690612234565b61091933611444565b61186e8161176e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606118ca83836040518060600160405280602781526020016122cf602791396118d1565b9392505050565b6060600080856001600160a01b0316856040516118ee919061227f565b600060405180830381855af49150503d8060008114611929576040519150601f19603f3d011682016040523d82523d6000602084013e61192e565b606091505b509150915061193f86838387611949565b9695505050505050565b606083156119b55782516119ae576001600160a01b0385163b6119ae5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610696565b50816119bf565b6119bf83836119c7565b949350505050565b8151156119d75781518083602001fd5b8060405162461bcd60e51b8152600401610696919061229b565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b828054611a2790612007565b90600052602060002090601f016020900481019282611a495760008555611a8f565b82601f10611a6257805160ff1916838001178555611a8f565b82800160010185558215611a8f579182015b82811115611a8f578251825591602001919060010190611a74565b50611a9b929150611ad5565b5090565b508054611aab90612007565b6000825580601f10611abb575050565b601f01602090049060005260206000209081019061071c91905b5b80821115611a9b5760008155600101611ad6565b80356001600160a01b0381168114611b0157600080fd5b919050565b600060208284031215611b1857600080fd5b6118ca82611aea565b60005b83811015611b3c578181015183820152602001611b24565b8381111561182f5750506000910152565b60008151808452611b65816020860160208601611b21565b601f01601f19169290920160200192915050565b60018060a01b0381511682526000602082015160606020850152611ba06060850182611b4d565b604093840151949093019390935250919050565b606081526000611bc76060830186611b79565b6001600160a01b0394851660208401529290931660409091015292915050565b80358015158114611b0157600080fd5b600060208284031215611c0957600080fd5b6118ca82611be7565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c5057611c50611c12565b604052919050565b60006001600160401b03831115611c7157611c71611c12565b611c84601f8401601f1916602001611c28565b9050828152838383011115611c9857600080fd5b828260208301376000602084830101529392505050565b60008060408385031215611cc257600080fd5b611ccb83611aea565b915060208301356001600160401b03811115611ce657600080fd5b8301601f81018513611cf757600080fd5b611d0685823560208401611c58565b9150509250929050565b600082601f830112611d2157600080fd5b6118ca83833560208501611c58565b60008060408385031215611d4357600080fd5b611d4c83611aea565b915060208301356001600160401b03811115611d6757600080fd5b611d0685828601611d10565b600060208284031215611d8557600080fd5b81356001600160401b03811115611d9b57600080fd5b6119bf84828501611d10565b634e487b7160e01b600052602160045260246000fd5b6020810160038310611ddf57634e487b7160e01b600052602160045260246000fd5b91905290565b6020815260006118ca6020830184611b79565b600060208284031215611e0a57600080fd5b5035919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015611e6657603f19888603018452611e54858351611b79565b94509285019290850190600101611e38565b5092979650505050505050565b60006001600160401b03821115611e8c57611e8c611c12565b5060051b60200190565b600082601f830112611ea757600080fd5b81356020611ebc611eb783611e73565b611c28565b82815260059290921b84018101918181019086841115611edb57600080fd5b8286015b84811015611f1a5780356001600160401b03811115611efe5760008081fd5b611f0c8986838b0101611d10565b845250918301918301611edf565b509695505050505050565b60008060008060808587031215611f3b57600080fd5b611f4485611aea565b93506020611f53818701611be7565b935060408601356001600160401b0380821115611f6f57600080fd5b818801915088601f830112611f8357600080fd5b8135611f91611eb782611e73565b81815260059190911b8301840190848101908b831115611fb057600080fd5b938501935b82851015611fd557611fc685611aea565b82529385019390850190611fb5565b965050506060880135925080831115611fed57600080fd5b5050611ffb87828801611e96565b91505092959194509250565b600181811c9082168061201b57607f821691505b6020821081141561203c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000600019821415612104576121046120da565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213357600080fd5b5051919050565b60006001600160401b0380831681811415612157576121576120da565b6001019392505050565b60408152600080845481600182811c91508083168061218157607f831692505b60208084108214156121a157634e487b7160e01b86526022600452602486fd5b60408801849052606088018280156121c057600181146121d1576121fc565b60ff198716825282820197506121fc565b60008c81526020902060005b878110156121f6578154848201529086019084016121dd565b83019850505b50509690960196909652509095945050505050565b60006001600160401b0382168061222a5761222a6120da565b6000190192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251612291818460208701611b21565b9190910192915050565b6020815260006118ca6020830184611b4d56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122031a8d47163093653802cc61e0927314f9974feb2480790836afebda72f5316b064736f6c63430008090033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
