UNPKG

@venusprotocol/governance-contracts

Version:
557 lines (556 loc) 40.4 kB
{ "_format": "hh-sol-artifact-1", "contractName": "MarketCapsRiskSteward", "sourceName": "contracts/RiskSteward/MarketCapsRiskSteward.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "riskStewardReceiver_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidSafeDeltaBps", "type": "error" }, { "inputs": [], "name": "InvalidUintLength", "type": "error" }, { "inputs": [], "name": "OnlyRiskStewardReceiver", "type": "error" }, { "inputs": [], "name": "RedundantValue", "type": "error" }, { "inputs": [], "name": "RenounceOwnershipNotAllowed", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "calledContract", "type": "address" }, { "internalType": "string", "name": "methodSignature", "type": "string" } ], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnsupportedUpdateType", "type": "error" }, { "inputs": [], "name": "ZeroAddressNotAllowed", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "updateId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "market", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newBorrowCap", "type": "uint256" } ], "name": "BorrowCapUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldAccessControlManager", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAccessControlManager", "type": "address" } ], "name": "NewAccessControlManager", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferStarted", "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": false, "internalType": "uint256", "name": "oldSafeDeltaBps", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newSafeDeltaBps", "type": "uint256" } ], "name": "SafeDeltaBpsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "updateId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "market", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newSupplyCap", "type": "uint256" } ], "name": "SupplyCapUpdated", "type": "event" }, { "inputs": [], "name": "BORROW_CAP", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BORROW_CAP_KEY", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RISK_STEWARD_RECEIVER", "outputs": [ { "internalType": "contract IRiskStewardReceiver", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SUPPLY_CAP", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SUPPLY_CAP_KEY", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "accessControlManager", "outputs": [ { "internalType": "contract IAccessControlManagerV8", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "referenceId", "type": "string" }, { "internalType": "uint256", "name": "updateId", "type": "uint256" }, { "internalType": "address", "name": "market", "type": "address" }, { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "bytes32", "name": "updateTypeKey", "type": "bytes32" }, { "internalType": "bytes", "name": "newValue", "type": "bytes" }, { "internalType": "bytes", "name": "previousValue", "type": "bytes" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "address", "name": "publisher", "type": "address" }, { "internalType": "uint96", "name": "poolId", "type": "uint96" }, { "internalType": "uint32", "name": "destLzEid", "type": "uint32" }, { "internalType": "bytes", "name": "additionalData", "type": "bytes" } ], "internalType": "struct RiskParameterUpdate", "name": "update", "type": "tuple" } ], "name": "applyUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "accessControlManager_", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "referenceId", "type": "string" }, { "internalType": "uint256", "name": "updateId", "type": "uint256" }, { "internalType": "address", "name": "market", "type": "address" }, { "internalType": "string", "name": "updateType", "type": "string" }, { "internalType": "bytes32", "name": "updateTypeKey", "type": "bytes32" }, { "internalType": "bytes", "name": "newValue", "type": "bytes" }, { "internalType": "bytes", "name": "previousValue", "type": "bytes" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "address", "name": "publisher", "type": "address" }, { "internalType": "uint96", "name": "poolId", "type": "uint96" }, { "internalType": "uint32", "name": "destLzEid", "type": "uint32" }, { "internalType": "bytes", "name": "additionalData", "type": "bytes" } ], "internalType": "struct RiskParameterUpdate", "name": "update", "type": "tuple" } ], "name": "isSafeForDirectExecution", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "safeDeltaBps", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "accessControlManager_", "type": "address" } ], "name": "setAccessControlManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "safeDeltaBps_", "type": "uint256" } ], "name": "setSafeDeltaBps", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60a060405234801561001057600080fd5b50604051611c13380380611c1383398101604081905261002f9161013d565b61003881610053565b6001600160a01b03811660805261004d61007d565b5061016d565b6001600160a01b03811661007a576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff16156100e95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561013b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561014f57600080fd5b81516001600160a01b038116811461016657600080fd5b9392505050565b608051611a8461018f600039600081816102b701526108d10152611a846000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063a0209e43116100b2578063c099f28411610081578063e30c397811610066578063e30c397814610379578063ee97f26514610397578063f2fde38b146103a057600080fd5b8063c099f2841461030a578063c4d66de81461036657600080fd5b8063a0209e4314610248578063b296e6cb146102b2578063b4a0bdf3146102d9578063bf637839146102f757600080fd5b8063715018a6116100ee578063715018a6146101bd57806377907191146101c557806379ba5097146102015780638da5cb5b1461020957600080fd5b80630cfccc83146101205780630e32cb86146101725780632c47d86f1461018757806342b7cfbd1461019a575b600080fd5b61015c6040518060400160405280600981526020017f737570706c79436170000000000000000000000000000000000000000000000081525081565b6040516101699190611718565b60405180910390f35b610185610180366004611754565b6103b3565b005b610185610195366004611771565b6103c7565b6101ad6101a836600461178a565b6104c0565b6040519015158152602001610169565b6101856107d0565b61015c6040518060400160405280600981526020017f626f72726f77436170000000000000000000000000000000000000000000000081525081565b610185610802565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610169565b60408051808201909152600981527f737570706c7943617000000000000000000000000000000000000000000000006020909101526102a47f068e90f21e6e5d3d0c48f5983b5b5b9b9e7c4efbb8b596ef6c729c6870a3c94381565b604051908152602001610169565b6102237f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff16610223565b61018561030536600461178a565b6108b9565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101526102a47fcec723f9fbde52ce895e2dc35ea3c6d14c9e1de94ef0a9e37f9d251de1a7817581565b610185610374366004611754565b610a3c565b60655473ffffffffffffffffffffffffffffffffffffffff16610223565b6102a460c95481565b6101856103ae366004611754565b610bc8565b6103bb610c78565b6103c481610cfb565b50565b6104056040518060400160405280601881526020017f7365745361666544656c74614270732875696e74323536290000000000000000815250610e1d565b612710811115610441576040517fc514758500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c95480820361047d576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c982905560408051828152602081018490527fa05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab91015b60405180910390a15050565b60008061050d6104d360a08501856117c6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ef692505050565b905060006105216060850160408601611754565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f9190611832565b60408051808201909152600981527f737570706c794361700000000000000000000000000000000000000000000000602090910152905060007ff9716f0de191a2c2f3b70a67c4a4a4646183b104474a6910938d63978f5c36bd6080860135016106b35773ffffffffffffffffffffffffffffffffffffffff82166302c3bcbb61061f6060880160408901611754565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ac919061184f565b9050610771565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101527f3138dc060421ad3176a1d23ca15c392eb361e216b10f561c8062dae21e587e8b60808601350161073f5773ffffffffffffffffffffffffffffffffffffffff8216634a58443261061f6060880160408901611754565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8083036107aa576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036107bd57506000949350505050565b6107c78382610f4d565b95945050505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff1681146108b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103c481610f9b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610928576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061093a6104d360a08401846117c6565b60408051808201909152600981527f737570706c79436170000000000000000000000000000000000000000000000060209091015290507ff9716f0de191a2c2f3b70a67c4a4a4646183b104474a6910938d63978f5c36bd6080830135016109be576109ba60208301356109b46060850160408601611754565b83610fcc565b5050565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101527f3138dc060421ad3176a1d23ca15c392eb361e216b10f561c8062dae21e587e8b60808301350161073f576109ba6020830135610a366060850160408601611754565b836111d9565b600054610100900460ff1615808015610a5c5750600054600160ff909116105b80610a765750303b158015610a76575060005460ff166001145b610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b6057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610b69826113bf565b80156109ba57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016104b4565b610bd0610c78565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610c3360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610cf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a7565b565b73ffffffffffffffffffffffffffffffffffffffff8116610d9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016108a7565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016104b4565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610e769033908690600401611868565b602060405180830381865afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb7919061189f565b9050806109ba573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016108a7939291906118c1565b60008151602014610f33576040517fccb08e2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81806020019051810190610f47919061184f565b92915050565b600080828411610f6657610f618484611929565b610f70565b610f708385611929565b905060006127108460c954610f85919061193c565b610f8f9190611953565b90911115949350505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103c481611467565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103d9190611832565b604080516001808252818301909252919250600091906020808301908036833701905050905083816000815181106110775761107761198e565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106110d5576110d561198e565b60209081029190910101526040517fd136af4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063d136af449061113490859085906004016119bd565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff16867f4cf0c4bb7f5084ce4791920af9e571c6edb179b9f96f39ede8ce00c922d17cdd836000815181106111b2576111b261198e565b60200260200101516040516111c991815260200190565b60405180910390a3505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190611832565b604080516001808252818301909252919250600091906020808301908036833701905050905083816000815181106112845761128461198e565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106112e2576112e261198e565b60209081029190910101526040517f186db48f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063186db48f9061134190859085906004016119bd565b600060405180830381600087803b15801561135b57600080fd5b505af115801561136f573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff16867fbe10220f8157f2d411dd6d5eb60524226528994d5a4ae89c640ae08ee21fb840836000815181106111b2576111b261198e565b600054610100900460ff16611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b61145e6114de565b6103c48161157d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b610cf9611614565b600054610100900460ff166103bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b600054610100900460ff166116ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b610cf933610f9b565b6000815180845260005b818110156116da576020818501810151868301820152016116be565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061172b60208301846116b4565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146103c457600080fd5b60006020828403121561176657600080fd5b813561172b81611732565b60006020828403121561178357600080fd5b5035919050565b60006020828403121561179c57600080fd5b813567ffffffffffffffff8111156117b357600080fd5b8201610180818503121561172b57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126117fb57600080fd5b83018035915067ffffffffffffffff82111561181657600080fd5b60200191503681900382131561182b57600080fd5b9250929050565b60006020828403121561184457600080fd5b815161172b81611732565b60006020828403121561186157600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061189760408301846116b4565b949350505050565b6000602082840312156118b157600080fd5b8151801515811461172b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526107c760608301846116b4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610f4757610f476118fa565b8082028115828204841417610f4757610f476118fa565b600082611989577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b604080825283519082018190526000906020906060840190828701845b82811015611a0c57815173ffffffffffffffffffffffffffffffffffffffff16845292840192908401906001016119da565b5050508381038285015284518082528583019183019060005b81811015611a4157835183529284019291840191600101611a25565b509097965050505050505056fea2646970667358221220d3f5096b9cdae18ca575d1be4720748a32b7fc0683ab0aa09c9bf1689fb65af964736f6c63430008190033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011b5760003560e01c8063a0209e43116100b2578063c099f28411610081578063e30c397811610066578063e30c397814610379578063ee97f26514610397578063f2fde38b146103a057600080fd5b8063c099f2841461030a578063c4d66de81461036657600080fd5b8063a0209e4314610248578063b296e6cb146102b2578063b4a0bdf3146102d9578063bf637839146102f757600080fd5b8063715018a6116100ee578063715018a6146101bd57806377907191146101c557806379ba5097146102015780638da5cb5b1461020957600080fd5b80630cfccc83146101205780630e32cb86146101725780632c47d86f1461018757806342b7cfbd1461019a575b600080fd5b61015c6040518060400160405280600981526020017f737570706c79436170000000000000000000000000000000000000000000000081525081565b6040516101699190611718565b60405180910390f35b610185610180366004611754565b6103b3565b005b610185610195366004611771565b6103c7565b6101ad6101a836600461178a565b6104c0565b6040519015158152602001610169565b6101856107d0565b61015c6040518060400160405280600981526020017f626f72726f77436170000000000000000000000000000000000000000000000081525081565b610185610802565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610169565b60408051808201909152600981527f737570706c7943617000000000000000000000000000000000000000000000006020909101526102a47f068e90f21e6e5d3d0c48f5983b5b5b9b9e7c4efbb8b596ef6c729c6870a3c94381565b604051908152602001610169565b6102237f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff16610223565b61018561030536600461178a565b6108b9565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101526102a47fcec723f9fbde52ce895e2dc35ea3c6d14c9e1de94ef0a9e37f9d251de1a7817581565b610185610374366004611754565b610a3c565b60655473ffffffffffffffffffffffffffffffffffffffff16610223565b6102a460c95481565b6101856103ae366004611754565b610bc8565b6103bb610c78565b6103c481610cfb565b50565b6104056040518060400160405280601881526020017f7365745361666544656c74614270732875696e74323536290000000000000000815250610e1d565b612710811115610441576040517fc514758500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c95480820361047d576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c982905560408051828152602081018490527fa05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab91015b60405180910390a15050565b60008061050d6104d360a08501856117c6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ef692505050565b905060006105216060850160408601611754565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058f9190611832565b60408051808201909152600981527f737570706c794361700000000000000000000000000000000000000000000000602090910152905060007ff9716f0de191a2c2f3b70a67c4a4a4646183b104474a6910938d63978f5c36bd6080860135016106b35773ffffffffffffffffffffffffffffffffffffffff82166302c3bcbb61061f6060880160408901611754565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381865afa158015610688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ac919061184f565b9050610771565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101527f3138dc060421ad3176a1d23ca15c392eb361e216b10f561c8062dae21e587e8b60808601350161073f5773ffffffffffffffffffffffffffffffffffffffff8216634a58443261061f6060880160408901611754565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8083036107aa576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000036107bd57506000949350505050565b6107c78382610f4d565b95945050505050565b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff1681146108b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103c481610f9b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610928576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061093a6104d360a08401846117c6565b60408051808201909152600981527f737570706c79436170000000000000000000000000000000000000000000000060209091015290507ff9716f0de191a2c2f3b70a67c4a4a4646183b104474a6910938d63978f5c36bd6080830135016109be576109ba60208301356109b46060850160408601611754565b83610fcc565b5050565b60408051808201909152600981527f626f72726f7743617000000000000000000000000000000000000000000000006020909101527f3138dc060421ad3176a1d23ca15c392eb361e216b10f561c8062dae21e587e8b60808301350161073f576109ba6020830135610a366060850160408601611754565b836111d9565b600054610100900460ff1615808015610a5c5750600054600160ff909116105b80610a765750303b158015610a76575060005460ff166001145b610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b6057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610b69826113bf565b80156109ba57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016104b4565b610bd0610c78565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610c3360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610cf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a7565b565b73ffffffffffffffffffffffffffffffffffffffff8116610d9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016108a7565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091016104b4565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610e769033908690600401611868565b602060405180830381865afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb7919061189f565b9050806109ba573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016108a7939291906118c1565b60008151602014610f33576040517fccb08e2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81806020019051810190610f47919061184f565b92915050565b600080828411610f6657610f618484611929565b610f70565b610f708385611929565b905060006127108460c954610f85919061193c565b610f8f9190611953565b90911115949350505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103c481611467565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103d9190611832565b604080516001808252818301909252919250600091906020808301908036833701905050905083816000815181106110775761107761198e565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106110d5576110d561198e565b60209081029190910101526040517fd136af4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063d136af449061113490859085906004016119bd565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff16867f4cf0c4bb7f5084ce4791920af9e571c6edb179b9f96f39ede8ce00c922d17cdd836000815181106111b2576111b261198e565b60200260200101516040516111c991815260200190565b60405180910390a3505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a9190611832565b604080516001808252818301909252919250600091906020808301908036833701905050905083816000815181106112845761128461198e565b73ffffffffffffffffffffffffffffffffffffffff929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106112e2576112e261198e565b60209081029190910101526040517f186db48f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063186db48f9061134190859085906004016119bd565b600060405180830381600087803b15801561135b57600080fd5b505af115801561136f573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff16867fbe10220f8157f2d411dd6d5eb60524226528994d5a4ae89c640ae08ee21fb840836000815181106111b2576111b261198e565b600054610100900460ff16611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b61145e6114de565b6103c48161157d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b610cf9611614565b600054610100900460ff166103bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b600054610100900460ff166116ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016108a7565b610cf933610f9b565b6000815180845260005b818110156116da576020818501810151868301820152016116be565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061172b60208301846116b4565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146103c457600080fd5b60006020828403121561176657600080fd5b813561172b81611732565b60006020828403121561178357600080fd5b5035919050565b60006020828403121561179c57600080fd5b813567ffffffffffffffff8111156117b357600080fd5b8201610180818503121561172b57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126117fb57600080fd5b83018035915067ffffffffffffffff82111561181657600080fd5b60200191503681900382131561182b57600080fd5b9250929050565b60006020828403121561184457600080fd5b815161172b81611732565b60006020828403121561186157600080fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff8316815260406020820152600061189760408301846116b4565b949350505050565b6000602082840312156118b157600080fd5b8151801515811461172b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526107c760608301846116b4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610f4757610f476118fa565b8082028115828204841417610f4757610f476118fa565b600082611989577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b604080825283519082018190526000906020906060840190828701845b82811015611a0c57815173ffffffffffffffffffffffffffffffffffffffff16845292840192908401906001016119da565b5050508381038285015284518082528583019183019060005b81811015611a4157835183529284019291840191600101611a25565b509097965050505050505056fea2646970667358221220d3f5096b9cdae18ca575d1be4720748a32b7fc0683ab0aa09c9bf1689fb65af964736f6c63430008190033", "linkReferences": {}, "deployedLinkReferences": {} }