{
    "_format": "hh-sol-artifact-1",
    "contractName": "StreamStorageRegistryV2",
    "sourceName": "contracts/StreamStorageRegistry/StreamStorageRegistryV2.sol",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "streamId",
                    "type": "string"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "Added",
            "type": "event"
        },
        {
            "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": false,
                    "internalType": "string",
                    "name": "streamId",
                    "type": "string"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "Removed",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "implementation",
                    "type": "address"
                }
            ],
            "name": "Upgraded",
            "type": "event"
        },
        {
            "inputs": [
                {
                    "internalType": "string",
                    "name": "streamId",
                    "type": "string"
                },
                {
                    "internalType": "address[]",
                    "name": "addNodes",
                    "type": "address[]"
                },
                {
                    "internalType": "address[]",
                    "name": "removeNodes",
                    "type": "address[]"
                }
            ],
            "name": "addAndRemoveStorageNodes",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "string",
                    "name": "streamId",
                    "type": "string"
                },
                {
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "addStorageNode",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "streamRegistryAddress",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "nodeRegistryAddress",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "string",
                    "name": "streamId",
                    "type": "string"
                },
                {
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "isStorageNodeOf",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "nodeRegistry",
            "outputs": [
                {
                    "internalType": "contract NodeRegistry",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "string",
                    "name": "",
                    "type": "string"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "pairs",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "dateCreated",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "proxiableUUID",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "string",
                    "name": "streamId",
                    "type": "string"
                },
                {
                    "internalType": "address",
                    "name": "nodeAddress",
                    "type": "address"
                }
            ],
            "name": "removeStorageNode",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "streamRegistry",
            "outputs": [
                {
                    "internalType": "contract StreamRegistryV4",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "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"
        }
    ],
    "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051611e0e61004c6000396000818161024e01528181610297015281816103200152818161036001526103dc0152611e0e6000f3fe60806040526004361061009c5760003560e01c8063842107cd11610064578063842107cd14610166578063a030f2df14610186578063a1aeaf22146101b6578063c0c53b8b146101d6578063d9b5c4a5146101f6578063e36421531461022357600080fd5b80633659cfe6146100a15780634f1ef286146100c357806352d1902d146100d6578063749d18d7146100fe57806380e9f2ba1461011e575b600080fd5b3480156100ad57600080fd5b506100c16100bc366004611668565b610243565b005b6100c16100d1366004611758565b610315565b3480156100e257600080fd5b506100eb6103cf565b6040519081526020015b60405180910390f35b34801561010a57600080fd5b506100c1610119366004611803565b61047d565b34801561012a57600080fd5b506100eb610139366004611859565b81516020818401810180516067825292820194820194909420919093529091526000908152604090205481565b34801561017257600080fd5b506100c1610181366004611803565b6106ce565b34801561019257600080fd5b506101a66101a1366004611803565b6109cc565b60405190151581526020016100f5565b3480156101c257600080fd5b506100c16101d1366004611902565b610b3d565b3480156101e257600080fd5b506100c16101f136600461199b565b610edb565b34801561020257600080fd5b50606654610216906001600160a01b031681565b6040516100f591906119db565b34801561022f57600080fd5b50606554610216906001600160a01b031681565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156102955760405162461bcd60e51b815260040161028c906119ef565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166102c7611017565b6001600160a01b0316146102ed5760405162461bcd60e51b815260040161028c90611a3b565b6102f681611033565b604080516000808252602082019092526103129183919061116b565b50565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561035e5760405162461bcd60e51b815260040161028c906119ef565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610390611017565b6001600160a01b0316146103b65760405162461bcd60e51b815260040161028c90611a3b565b6103bf82611033565b6103cb8282600161116b565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161028c565b50600080516020611d9283398151915290565b60655460405163130d191f60e11b8152849184916001600160a01b039091169063261a323e906104b39085908590600401611ab0565b60206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105039190611ac4565b61051f5760405162461bcd60e51b815260040161028c90611ae6565b6065546040805162353f8560e81b815290516000926001600160a01b0316916391d1485491839163353f8500916004808301926020929190829003018186803b15801561056b57600080fd5b505afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190611b18565b336040518363ffffffff1660e01b81526004016105c1929190611b31565b60206040518083038186803b1580156105d957600080fd5b505afa1580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106119190611ac4565b9050806106bb57606554604051631116420760e31b81526001600160a01b03909116906388b210389061064f90869086903390600090600401611b48565b60206040518083038186803b15801561066757600080fd5b505afa15801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f9190611ac4565b6106bb5760405162461bcd60e51b815260040161028c90611b9a565b6106c68686866112ea565b505050505050565b60655460405163130d191f60e11b8152849184916001600160a01b039091169063261a323e906107049085908590600401611ab0565b60206040518083038186803b15801561071c57600080fd5b505afa158015610730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190611ac4565b6107705760405162461bcd60e51b815260040161028c90611ae6565b6065546040805162353f8560e81b815290516000926001600160a01b0316916391d1485491839163353f8500916004808301926020929190829003018186803b1580156107bc57600080fd5b505afa1580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611b18565b336040518363ffffffff1660e01b8152600401610812929190611b31565b60206040518083038186803b15801561082a57600080fd5b505afa15801561083e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108629190611ac4565b90508061090c57606554604051631116420760e31b81526001600160a01b03909116906388b21038906108a090869086903390600090600401611b48565b60206040518083038186803b1580156108b857600080fd5b505afa1580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f09190611ac4565b61090c5760405162461bcd60e51b815260040161028c90611b9a565b6066546040516313a4120960e31b81526000916001600160a01b031690639d2090489061093d9088906004016119db565b60006040518083038186803b15801561095557600080fd5b505afa158015610969573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109919190810190611bf6565b90508060400151600014156109b85760405162461bcd60e51b815260040161028c90611cbc565b6109c3878787611363565b50505050505050565b60655460405163130d191f60e11b81526000916001600160a01b03169063261a323e906109ff9087908790600401611ab0565b60206040518083038186803b158015610a1757600080fd5b505afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611ac4565b610a5b57506000610b36565b6066546040516313a4120960e31b81526000916001600160a01b031690639d20904890610a8c9086906004016119db565b60006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190611bf6565b9050806040015160001415610af9576000915050610b36565b60678585604051610b0b929190611cf3565b90815260408051602092819003830190206001600160a01b0386166000908152925290205415159150505b9392505050565b60655460405163130d191f60e11b8152879187916001600160a01b039091169063261a323e90610b739085908590600401611ab0565b60206040518083038186803b158015610b8b57600080fd5b505afa158015610b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc39190611ac4565b610bdf5760405162461bcd60e51b815260040161028c90611ae6565b6065546040805162353f8560e81b815290516000926001600160a01b0316916391d1485491839163353f8500916004808301926020929190829003018186803b158015610c2b57600080fd5b505afa158015610c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c639190611b18565b336040518363ffffffff1660e01b8152600401610c81929190611b31565b60206040518083038186803b158015610c9957600080fd5b505afa158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd19190611ac4565b905080610d7b57606554604051631116420760e31b81526001600160a01b03909116906388b2103890610d0f90869086903390600090600401611b48565b60206040518083038186803b158015610d2757600080fd5b505afa158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190611ac4565b610d7b5760405162461bcd60e51b815260040161028c90611b9a565b60005b86811015610e80576000888883818110610d9a57610d9a611d03565b9050602002016020810190610daf9190611668565b6066546040516313a4120960e31b81529192506000916001600160a01b0390911690639d20904890610de59085906004016119db565b60006040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e399190810190611bf6565b9050806040015160001415610e605760405162461bcd60e51b815260040161028c90611cbc565b610e6b8c8c84611363565b50508080610e7890611d19565b915050610d7e565b5060005b84811015610ecf57610ebd8a8a888885818110610ea357610ea3611d03565b9050602002016020810190610eb89190611668565b6112ea565b80610ec781611d19565b915050610e84565b50505050505050505050565b600054610100900460ff1615808015610efb5750600054600160ff909116105b80610f155750303b158015610f15575060005460ff166001145b610f785760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161028c565b6000805460ff191660011790558015610f9b576000805461ff0019166101001790555b606580546001600160a01b038087166001600160a01b03199283161790925560668054928616929091169190911790558015611011576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600080516020611d92833981519152546001600160a01b031690565b6065546040805162353f8560e81b815290516001600160a01b03909216916391d1485491839163353f850091600480820192602092909190829003018186803b15801561107f57600080fd5b505afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b79190611b18565b336040518363ffffffff1660e01b81526004016110d5929190611b31565b60206040518083038186803b1580156110ed57600080fd5b505afa158015611101573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111259190611ac4565b6103125760405162461bcd60e51b81526020600482015260176024820152766572726f725f6d757374426554727573746564526f6c6560481b604482015260640161028c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111a35761119e83611412565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111dc57600080fd5b505afa92505050801561120c575060408051601f3d908101601f1916820190925261120991810190611b18565b60015b61126f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161028c565b600080516020611d9283398151915281146112de5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161028c565b5061119e8383836114ae565b606783836040516112fc929190611cf3565b90815260408051602092819003830181206001600160a01b038516600081815291909452918220919091557f264d05230c1929427b5dcfcf1c83668ac376e215a2c35cb0e2c21816bbe28d06906113569086908690611ab0565b60405180910390a2505050565b60678383604051611375929190611cf3565b90815260408051602092819003830190206001600160a01b038416600090815292529020546113d75742606784846040516113b1929190611cf3565b90815260408051602092819003830190206001600160a01b038516600090815292529020555b806001600160a01b03167ffb989cb0d132b51483b9258c1befbe92caa5f5b046af3dfdcc617dcf425af4938484604051611356929190611ab0565b6001600160a01b0381163b61147f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161028c565b600080516020611d9283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6114b7836114d3565b6000825111806114c45750805b1561119e576110118383611513565b6114dc81611412565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610b368383604051806060016040528060278152602001611db2602791396060600080856001600160a01b0316856040516115509190611d42565b600060405180830381855af49150503d806000811461158b576040519150601f19603f3d011682016040523d82523d6000602084013e611590565b606091505b50915091506115a1868383876115ab565b9695505050505050565b60608315611617578251611610576001600160a01b0385163b6116105760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161028c565b5081611621565b6116218383611629565b949350505050565b8151156116395781518083602001fd5b8060405162461bcd60e51b815260040161028c9190611d5e565b6001600160a01b038116811461031257600080fd5b60006020828403121561167a57600080fd5b8135610b3681611653565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156116bd576116bd611685565b60405290565b604051601f8201601f191681016001600160401b03811182821017156116eb576116eb611685565b604052919050565b60006001600160401b0382111561170c5761170c611685565b50601f01601f191660200190565b600061172d611728846116f3565b6116c3565b905082815283838301111561174157600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561176b57600080fd5b823561177681611653565b915060208301356001600160401b0381111561179157600080fd5b8301601f810185136117a257600080fd5b6117b18582356020840161171a565b9150509250929050565b60008083601f8401126117cd57600080fd5b5081356001600160401b038111156117e457600080fd5b6020830191508360208285010111156117fc57600080fd5b9250929050565b60008060006040848603121561181857600080fd5b83356001600160401b0381111561182e57600080fd5b61183a868287016117bb565b909450925050602084013561184e81611653565b809150509250925092565b6000806040838503121561186c57600080fd5b82356001600160401b0381111561188257600080fd5b8301601f8101851361189357600080fd5b6118a28582356020840161171a565b92505060208301356118b381611653565b809150509250929050565b60008083601f8401126118d057600080fd5b5081356001600160401b038111156118e757600080fd5b6020830191508360208260051b85010111156117fc57600080fd5b6000806000806000806060878903121561191b57600080fd5b86356001600160401b038082111561193257600080fd5b61193e8a838b016117bb565b9098509650602089013591508082111561195757600080fd5b6119638a838b016118be565b9096509450604089013591508082111561197c57600080fd5b5061198989828a016118be565b979a9699509497509295939492505050565b6000806000606084860312156119b057600080fd5b83356119bb81611653565b925060208401356119cb81611653565b9150604084013561184e81611653565b6001600160a01b0391909116815260200190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000611621602083018486611a87565b600060208284031215611ad657600080fd5b81518015158114610b3657600080fd5b602080825260189082015277195c9c9bdc97dcdd1c99585b511bd95cd39bdd115e1a5cdd60421b604082015260600190565b600060208284031215611b2a57600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b606081526000611b5c606083018688611a87565b6001600160a01b0385166020840152905060058310611b8b57634e487b7160e01b600052602160045260246000fd5b82604083015295945050505050565b60208082526016908201527532b93937b92fb737a2b234ba2832b936b4b9b9b4b7b760511b604082015260600190565b60005b83811015611be5578181015183820152602001611bcd565b838111156110115750506000910152565b60006020808385031215611c0957600080fd5b82516001600160401b0380821115611c2057600080fd5b9084019060608287031215611c3457600080fd5b611c3c61169b565b8251611c4781611653565b81528284015182811115611c5a57600080fd5b83019150601f82018713611c6d57600080fd5b8151611c7b611728826116f3565b8181528886838601011115611c8f57600080fd5b611c9e82878301888701611bca565b80868401525050604083015160408201528094505050505092915050565b6020808252601e908201527f6572726f725f73746f726167654e6f64654e6f74526567697374657265640000604082015260600190565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611d3b57634e487b7160e01b600052601160045260246000fd5b5060010190565b60008251611d54818460208701611bca565b9190910192915050565b6020815260008251806020840152611d7d816040850160208701611bca565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220859a1681d2e4c26e1c727b6251e8ccf8655179876f5c90a6183705df53b4142b64736f6c63430008090033",
    "deployedBytecode": "0x60806040526004361061009c5760003560e01c8063842107cd11610064578063842107cd14610166578063a030f2df14610186578063a1aeaf22146101b6578063c0c53b8b146101d6578063d9b5c4a5146101f6578063e36421531461022357600080fd5b80633659cfe6146100a15780634f1ef286146100c357806352d1902d146100d6578063749d18d7146100fe57806380e9f2ba1461011e575b600080fd5b3480156100ad57600080fd5b506100c16100bc366004611668565b610243565b005b6100c16100d1366004611758565b610315565b3480156100e257600080fd5b506100eb6103cf565b6040519081526020015b60405180910390f35b34801561010a57600080fd5b506100c1610119366004611803565b61047d565b34801561012a57600080fd5b506100eb610139366004611859565b81516020818401810180516067825292820194820194909420919093529091526000908152604090205481565b34801561017257600080fd5b506100c1610181366004611803565b6106ce565b34801561019257600080fd5b506101a66101a1366004611803565b6109cc565b60405190151581526020016100f5565b3480156101c257600080fd5b506100c16101d1366004611902565b610b3d565b3480156101e257600080fd5b506100c16101f136600461199b565b610edb565b34801561020257600080fd5b50606654610216906001600160a01b031681565b6040516100f591906119db565b34801561022f57600080fd5b50606554610216906001600160a01b031681565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156102955760405162461bcd60e51b815260040161028c906119ef565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166102c7611017565b6001600160a01b0316146102ed5760405162461bcd60e51b815260040161028c90611a3b565b6102f681611033565b604080516000808252602082019092526103129183919061116b565b50565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561035e5760405162461bcd60e51b815260040161028c906119ef565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610390611017565b6001600160a01b0316146103b65760405162461bcd60e51b815260040161028c90611a3b565b6103bf82611033565b6103cb8282600161116b565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461046a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161028c565b50600080516020611d9283398151915290565b60655460405163130d191f60e11b8152849184916001600160a01b039091169063261a323e906104b39085908590600401611ab0565b60206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105039190611ac4565b61051f5760405162461bcd60e51b815260040161028c90611ae6565b6065546040805162353f8560e81b815290516000926001600160a01b0316916391d1485491839163353f8500916004808301926020929190829003018186803b15801561056b57600080fd5b505afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190611b18565b336040518363ffffffff1660e01b81526004016105c1929190611b31565b60206040518083038186803b1580156105d957600080fd5b505afa1580156105ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106119190611ac4565b9050806106bb57606554604051631116420760e31b81526001600160a01b03909116906388b210389061064f90869086903390600090600401611b48565b60206040518083038186803b15801561066757600080fd5b505afa15801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f9190611ac4565b6106bb5760405162461bcd60e51b815260040161028c90611b9a565b6106c68686866112ea565b505050505050565b60655460405163130d191f60e11b8152849184916001600160a01b039091169063261a323e906107049085908590600401611ab0565b60206040518083038186803b15801561071c57600080fd5b505afa158015610730573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107549190611ac4565b6107705760405162461bcd60e51b815260040161028c90611ae6565b6065546040805162353f8560e81b815290516000926001600160a01b0316916391d1485491839163353f8500916004808301926020929190829003018186803b1580156107bc57600080fd5b505afa1580156107d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f49190611b18565b336040518363ffffffff1660e01b8152600401610812929190611b31565b60206040518083038186803b15801561082a57600080fd5b505afa15801561083e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108629190611ac4565b90508061090c57606554604051631116420760e31b81526001600160a01b03909116906388b21038906108a090869086903390600090600401611b48565b60206040518083038186803b1580156108b857600080fd5b505afa1580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f09190611ac4565b61090c5760405162461bcd60e51b815260040161028c90611b9a565b6066546040516313a4120960e31b81526000916001600160a01b031690639d2090489061093d9088906004016119db565b60006040518083038186803b15801561095557600080fd5b505afa158015610969573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109919190810190611bf6565b90508060400151600014156109b85760405162461bcd60e51b815260040161028c90611cbc565b6109c3878787611363565b50505050505050565b60655460405163130d191f60e11b81526000916001600160a01b03169063261a323e906109ff9087908790600401611ab0565b60206040518083038186803b158015610a1757600080fd5b505afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611ac4565b610a5b57506000610b36565b6066546040516313a4120960e31b81526000916001600160a01b031690639d20904890610a8c9086906004016119db565b60006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190611bf6565b9050806040015160001415610af9576000915050610b36565b60678585604051610b0b929190611cf3565b90815260408051602092819003830190206001600160a01b0386166000908152925290205415159150505b9392505050565b60655460405163130d191f60e11b8152879187916001600160a01b039091169063261a323e90610b739085908590600401611ab0565b60206040518083038186803b158015610b8b57600080fd5b505afa158015610b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc39190611ac4565b610bdf5760405162461bcd60e51b815260040161028c90611ae6565b6065546040805162353f8560e81b815290516000926001600160a01b0316916391d1485491839163353f8500916004808301926020929190829003018186803b158015610c2b57600080fd5b505afa158015610c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c639190611b18565b336040518363ffffffff1660e01b8152600401610c81929190611b31565b60206040518083038186803b158015610c9957600080fd5b505afa158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd19190611ac4565b905080610d7b57606554604051631116420760e31b81526001600160a01b03909116906388b2103890610d0f90869086903390600090600401611b48565b60206040518083038186803b158015610d2757600080fd5b505afa158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190611ac4565b610d7b5760405162461bcd60e51b815260040161028c90611b9a565b60005b86811015610e80576000888883818110610d9a57610d9a611d03565b9050602002016020810190610daf9190611668565b6066546040516313a4120960e31b81529192506000916001600160a01b0390911690639d20904890610de59085906004016119db565b60006040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e399190810190611bf6565b9050806040015160001415610e605760405162461bcd60e51b815260040161028c90611cbc565b610e6b8c8c84611363565b50508080610e7890611d19565b915050610d7e565b5060005b84811015610ecf57610ebd8a8a888885818110610ea357610ea3611d03565b9050602002016020810190610eb89190611668565b6112ea565b80610ec781611d19565b915050610e84565b50505050505050505050565b600054610100900460ff1615808015610efb5750600054600160ff909116105b80610f155750303b158015610f15575060005460ff166001145b610f785760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161028c565b6000805460ff191660011790558015610f9b576000805461ff0019166101001790555b606580546001600160a01b038087166001600160a01b03199283161790925560668054928616929091169190911790558015611011576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600080516020611d92833981519152546001600160a01b031690565b6065546040805162353f8560e81b815290516001600160a01b03909216916391d1485491839163353f850091600480820192602092909190829003018186803b15801561107f57600080fd5b505afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b79190611b18565b336040518363ffffffff1660e01b81526004016110d5929190611b31565b60206040518083038186803b1580156110ed57600080fd5b505afa158015611101573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111259190611ac4565b6103125760405162461bcd60e51b81526020600482015260176024820152766572726f725f6d757374426554727573746564526f6c6560481b604482015260640161028c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111a35761119e83611412565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111dc57600080fd5b505afa92505050801561120c575060408051601f3d908101601f1916820190925261120991810190611b18565b60015b61126f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161028c565b600080516020611d9283398151915281146112de5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161028c565b5061119e8383836114ae565b606783836040516112fc929190611cf3565b90815260408051602092819003830181206001600160a01b038516600081815291909452918220919091557f264d05230c1929427b5dcfcf1c83668ac376e215a2c35cb0e2c21816bbe28d06906113569086908690611ab0565b60405180910390a2505050565b60678383604051611375929190611cf3565b90815260408051602092819003830190206001600160a01b038416600090815292529020546113d75742606784846040516113b1929190611cf3565b90815260408051602092819003830190206001600160a01b038516600090815292529020555b806001600160a01b03167ffb989cb0d132b51483b9258c1befbe92caa5f5b046af3dfdcc617dcf425af4938484604051611356929190611ab0565b6001600160a01b0381163b61147f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161028c565b600080516020611d9283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6114b7836114d3565b6000825111806114c45750805b1561119e576110118383611513565b6114dc81611412565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610b368383604051806060016040528060278152602001611db2602791396060600080856001600160a01b0316856040516115509190611d42565b600060405180830381855af49150503d806000811461158b576040519150601f19603f3d011682016040523d82523d6000602084013e611590565b606091505b50915091506115a1868383876115ab565b9695505050505050565b60608315611617578251611610576001600160a01b0385163b6116105760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161028c565b5081611621565b6116218383611629565b949350505050565b8151156116395781518083602001fd5b8060405162461bcd60e51b815260040161028c9190611d5e565b6001600160a01b038116811461031257600080fd5b60006020828403121561167a57600080fd5b8135610b3681611653565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156116bd576116bd611685565b60405290565b604051601f8201601f191681016001600160401b03811182821017156116eb576116eb611685565b604052919050565b60006001600160401b0382111561170c5761170c611685565b50601f01601f191660200190565b600061172d611728846116f3565b6116c3565b905082815283838301111561174157600080fd5b828260208301376000602084830101529392505050565b6000806040838503121561176b57600080fd5b823561177681611653565b915060208301356001600160401b0381111561179157600080fd5b8301601f810185136117a257600080fd5b6117b18582356020840161171a565b9150509250929050565b60008083601f8401126117cd57600080fd5b5081356001600160401b038111156117e457600080fd5b6020830191508360208285010111156117fc57600080fd5b9250929050565b60008060006040848603121561181857600080fd5b83356001600160401b0381111561182e57600080fd5b61183a868287016117bb565b909450925050602084013561184e81611653565b809150509250925092565b6000806040838503121561186c57600080fd5b82356001600160401b0381111561188257600080fd5b8301601f8101851361189357600080fd5b6118a28582356020840161171a565b92505060208301356118b381611653565b809150509250929050565b60008083601f8401126118d057600080fd5b5081356001600160401b038111156118e757600080fd5b6020830191508360208260051b85010111156117fc57600080fd5b6000806000806000806060878903121561191b57600080fd5b86356001600160401b038082111561193257600080fd5b61193e8a838b016117bb565b9098509650602089013591508082111561195757600080fd5b6119638a838b016118be565b9096509450604089013591508082111561197c57600080fd5b5061198989828a016118be565b979a9699509497509295939492505050565b6000806000606084860312156119b057600080fd5b83356119bb81611653565b925060208401356119cb81611653565b9150604084013561184e81611653565b6001600160a01b0391909116815260200190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000611621602083018486611a87565b600060208284031215611ad657600080fd5b81518015158114610b3657600080fd5b602080825260189082015277195c9c9bdc97dcdd1c99585b511bd95cd39bdd115e1a5cdd60421b604082015260600190565b600060208284031215611b2a57600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b606081526000611b5c606083018688611a87565b6001600160a01b0385166020840152905060058310611b8b57634e487b7160e01b600052602160045260246000fd5b82604083015295945050505050565b60208082526016908201527532b93937b92fb737a2b234ba2832b936b4b9b9b4b7b760511b604082015260600190565b60005b83811015611be5578181015183820152602001611bcd565b838111156110115750506000910152565b60006020808385031215611c0957600080fd5b82516001600160401b0380821115611c2057600080fd5b9084019060608287031215611c3457600080fd5b611c3c61169b565b8251611c4781611653565b81528284015182811115611c5a57600080fd5b83019150601f82018713611c6d57600080fd5b8151611c7b611728826116f3565b8181528886838601011115611c8f57600080fd5b611c9e82878301888701611bca565b80868401525050604083015160408201528094505050505092915050565b6020808252601e908201527f6572726f725f73746f726167654e6f64654e6f74526567697374657265640000604082015260600190565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611d3b57634e487b7160e01b600052601160045260246000fd5b5060010190565b60008251611d54818460208701611bca565b9190910192915050565b6020815260008251806020840152611d7d816040850160208701611bca565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220859a1681d2e4c26e1c727b6251e8ccf8655179876f5c90a6183705df53b4142b64736f6c63430008090033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
