{"matchId":"6505871","creationMatch":"match","runtimeMatch":"match","verifiedAt":"2025-06-21T15:25:37Z","creationBytecode":{"onchainBytecode":"0x60c060405234801561001057600080fd5b50604051610e9a380380610e9a83398101604081905261002f91610087565b6001600160a01b0394851660805292841660a052600080549285166001600160a01b031993841617905560018054919094169116179091556002556100f2565b6001600160a01b038116811461008457600080fd5b50565b600080600080600060a0868803121561009f57600080fd5b85516100aa8161006f565b60208701519095506100bb8161006f565b60408701519094506100cc8161006f565b60608701519093506100dd8161006f565b80925050608086015190509295509295909350565b60805160a051610d596101416000396000818161025b01528181610566015281816106e9015281816108300152610ab2015260008181610234015281816103f2015261092d0152610d596000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063b132240d116100a2578063c600e1dc11610071578063c600e1dc1461021c578063c7ed69cd1461022f578063ea0593e414610256578063fa95a4011461027d578063fdf893f51461029057600080fd5b8063b132240d146101c3578063b891f797146101e3578063b90d0bcd146101f6578063c002e56e1461020957600080fd5b806376105f37116100de57806376105f37146101815780637e33f789146101945780638b723821146101a7578063a962ef1e146101b057600080fd5b806312d43a5114610110578063274cee31146101405780632b52684d1461016e57806369652fcf14610177575b600080fd5b600054610123906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61016061014e366004610bf4565b60046020526000908152604090205481565b604051908152602001610137565b61016060025481565b61017f6102a3565b005b61017f61018f366004610c18565b6102e8565b61017f6101a2366004610c44565b61032e565b61016060035481565b61017f6101be366004610bf4565b61035d565b6101606101d1366004610bf4565b60056020526000908152604090205481565b61017f6101f1366004610c18565b6103a9565b61017f610204366004610bf4565b610655565b61017f610217366004610bf4565b610760565b61016061022a366004610bf4565b6107ac565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b61017f61028b366004610c18565b6108e4565b600154610123906001600160a01b031681565b6001546001600160a01b031633146102d65760405162461bcd60e51b81526004016102cd90610c5d565b60405180910390fd5b600180546001600160a01b0319169055565b6000546001600160a01b031633146103125760405162461bcd60e51b81526004016102cd90610c81565b6001600160a01b03909116600090815260056020526040902055565b6000546001600160a01b031633146103585760405162461bcd60e51b81526004016102cd90610c81565b600255565b6000546001600160a01b031633146103875760405162461bcd60e51b81526004016102cd90610c81565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146103d35760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045d9190610ca3565b61049e5760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b6001600160a01b038216600090815260046020526040902054808211156104f85760405162461bcd60e51b815260206004820152600e60248201526d414d4f554e5420544f4f2042494760901b60448201526064016102cd565b604051637d32e79360e01b8152600481018390526001600160a01b03841690637d32e79390602401600060405180830381600087803b15801561053a57600080fd5b505af115801561054e573d6000803e3d6000fd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c689150602401600060405180830381600087803b1580156105b457600080fd5b505af11580156105c8573d6000803e3d6000fd5b505050506001600160a01b038316600090815260046020526040812080548492906105f4908490610cdb565b92505081905550816003600082825461060d9190610cdb565b90915550506040518281526001600160a01b038416907f6bfec639a4f12aa59c8346bbc8be8ca30057bc316778a9919c9bda271f1741cb9060200160405180910390a2505050565b6000610660826107ac565b9050801561075c57604051637d32e79360e01b8152600481018290526001600160a01b03831690637d32e79390602401600060405180830381600087803b1580156106aa57600080fd5b505af11580156106be573d6000803e3d6000fd5b505060005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590527f0000000000000000000000000000000000000000000000000000000000000000909116925063a9059cbb91506044016020604051808303816000875af1158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a9190610ca3565b505b5050565b6000546001600160a01b0316331461078a5760405162461bcd60e51b81526004016102cd90610c81565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080826001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190610cf2565b6040516370a0823160e01b81526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190610cf2565b6108a59190610d0b565b6001600160a01b0384166000908152600460205260409020549091508181106108d2575060009392505050565b6108dc8183610cdb565b949350505050565b6001546001600160a01b0316331461090e5760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190610ca3565b6109d95760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b816001600160a01b031663bcb4bbea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190610ca3565b1515600103610a8c5760405162461bcd60e51b815260206004820152601c60248201527f43414e4e4f5420455850414e4420504155534544204d41524b4554530000000060448201526064016102cd565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b158015610af657600080fd5b505af1158015610b0a573d6000803e3d6000fd5b505050506001600160a01b03821660009081526004602052604081208054839290610b36908490610d0b565b925050819055508060036000828254610b4f9190610d0b565b90915550506002546003541115610b6557600080fd5b6001600160a01b0382166000908152600560209081526040808320546004909252909120541115610b9557600080fd5b816001600160a01b03167fcb1a873dc7afc9834dabddc6e5643ad78e087f41a67dd561559cc6fc92686d7782604051610bd091815260200190565b60405180910390a25050565b6001600160a01b0381168114610bf157600080fd5b50565b600060208284031215610c0657600080fd5b8135610c1181610bdc565b9392505050565b60008060408385031215610c2b57600080fd5b8235610c3681610bdc565b946020939093013593505050565b600060208284031215610c5657600080fd5b5035919050565b6020808252600a908201526927a7262c9021a420a4a960b11b604082015260600190565b60208082526008908201526727a7262c9023a7ab60c11b604082015260600190565b600060208284031215610cb557600080fd5b81518015158114610c1157600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ced57610ced610cc5565b500390565b600060208284031215610d0457600080fd5b5051919050565b60008219821115610d1e57610d1e610cc5565b50019056fea2646970667358221220f9ce4eead929e9a34d099ab5147163c8f0c9f15668cb2bcf23307f3a28fcd64364736f6c634300080d0033000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d710000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b0000000000000000000000008f97cca30dbe80e7a8b462f1dd1a51c32accdfc80000000000000000000000000000000000000000000069e10de76676d0800000","recompiledBytecode":"0x60c060405234801561001057600080fd5b50604051610e9a380380610e9a83398101604081905261002f91610087565b6001600160a01b0394851660805292841660a052600080549285166001600160a01b031993841617905560018054919094169116179091556002556100f2565b6001600160a01b038116811461008457600080fd5b50565b600080600080600060a0868803121561009f57600080fd5b85516100aa8161006f565b60208701519095506100bb8161006f565b60408701519094506100cc8161006f565b60608701519093506100dd8161006f565b80925050608086015190509295509295909350565b60805160a051610d596101416000396000818161025b01528181610566015281816106e9015281816108300152610ab2015260008181610234015281816103f2015261092d0152610d596000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063b132240d116100a2578063c600e1dc11610071578063c600e1dc1461021c578063c7ed69cd1461022f578063ea0593e414610256578063fa95a4011461027d578063fdf893f51461029057600080fd5b8063b132240d146101c3578063b891f797146101e3578063b90d0bcd146101f6578063c002e56e1461020957600080fd5b806376105f37116100de57806376105f37146101815780637e33f789146101945780638b723821146101a7578063a962ef1e146101b057600080fd5b806312d43a5114610110578063274cee31146101405780632b52684d1461016e57806369652fcf14610177575b600080fd5b600054610123906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61016061014e366004610bf4565b60046020526000908152604090205481565b604051908152602001610137565b61016060025481565b61017f6102a3565b005b61017f61018f366004610c18565b6102e8565b61017f6101a2366004610c44565b61032e565b61016060035481565b61017f6101be366004610bf4565b61035d565b6101606101d1366004610bf4565b60056020526000908152604090205481565b61017f6101f1366004610c18565b6103a9565b61017f610204366004610bf4565b610655565b61017f610217366004610bf4565b610760565b61016061022a366004610bf4565b6107ac565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b61017f61028b366004610c18565b6108e4565b600154610123906001600160a01b031681565b6001546001600160a01b031633146102d65760405162461bcd60e51b81526004016102cd90610c5d565b60405180910390fd5b600180546001600160a01b0319169055565b6000546001600160a01b031633146103125760405162461bcd60e51b81526004016102cd90610c81565b6001600160a01b03909116600090815260056020526040902055565b6000546001600160a01b031633146103585760405162461bcd60e51b81526004016102cd90610c81565b600255565b6000546001600160a01b031633146103875760405162461bcd60e51b81526004016102cd90610c81565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146103d35760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045d9190610ca3565b61049e5760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b6001600160a01b038216600090815260046020526040902054808211156104f85760405162461bcd60e51b815260206004820152600e60248201526d414d4f554e5420544f4f2042494760901b60448201526064016102cd565b604051637d32e79360e01b8152600481018390526001600160a01b03841690637d32e79390602401600060405180830381600087803b15801561053a57600080fd5b505af115801561054e573d6000803e3d6000fd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c689150602401600060405180830381600087803b1580156105b457600080fd5b505af11580156105c8573d6000803e3d6000fd5b505050506001600160a01b038316600090815260046020526040812080548492906105f4908490610cdb565b92505081905550816003600082825461060d9190610cdb565b90915550506040518281526001600160a01b038416907f6bfec639a4f12aa59c8346bbc8be8ca30057bc316778a9919c9bda271f1741cb9060200160405180910390a2505050565b6000610660826107ac565b9050801561075c57604051637d32e79360e01b8152600481018290526001600160a01b03831690637d32e79390602401600060405180830381600087803b1580156106aa57600080fd5b505af11580156106be573d6000803e3d6000fd5b505060005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590527f0000000000000000000000000000000000000000000000000000000000000000909116925063a9059cbb91506044016020604051808303816000875af1158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a9190610ca3565b505b5050565b6000546001600160a01b0316331461078a5760405162461bcd60e51b81526004016102cd90610c81565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080826001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190610cf2565b6040516370a0823160e01b81526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190610cf2565b6108a59190610d0b565b6001600160a01b0384166000908152600460205260409020549091508181106108d2575060009392505050565b6108dc8183610cdb565b949350505050565b6001546001600160a01b0316331461090e5760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190610ca3565b6109d95760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b816001600160a01b031663bcb4bbea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190610ca3565b1515600103610a8c5760405162461bcd60e51b815260206004820152601c60248201527f43414e4e4f5420455850414e4420504155534544204d41524b4554530000000060448201526064016102cd565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b158015610af657600080fd5b505af1158015610b0a573d6000803e3d6000fd5b505050506001600160a01b03821660009081526004602052604081208054839290610b36908490610d0b565b925050819055508060036000828254610b4f9190610d0b565b90915550506002546003541115610b6557600080fd5b6001600160a01b0382166000908152600560209081526040808320546004909252909120541115610b9557600080fd5b816001600160a01b03167fcb1a873dc7afc9834dabddc6e5643ad78e087f41a67dd561559cc6fc92686d7782604051610bd091815260200190565b60405180910390a25050565b6001600160a01b0381168114610bf157600080fd5b50565b600060208284031215610c0657600080fd5b8135610c1181610bdc565b9392505050565b60008060408385031215610c2b57600080fd5b8235610c3681610bdc565b946020939093013593505050565b600060208284031215610c5657600080fd5b5035919050565b6020808252600a908201526927a7262c9021a420a4a960b11b604082015260600190565b60208082526008908201526727a7262c9023a7ab60c11b604082015260600190565b600060208284031215610cb557600080fd5b81518015158114610c1157600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ced57610ced610cc5565b500390565b600060208284031215610d0457600080fd5b5051919050565b60008219821115610d1e57610d1e610cc5565b50019056fea26469706673582212203c8d70db7cc2a384b592de0e252adaa475da0f949dfbdfd45dc2a430d447dc9164736f6c634300080d0033","sourceMap":"839:4844:0:-:0;;;1140:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1239:10:0;;;;;1260:12;;;;;1283:3;:10;;;;;-1:-1:-1;;;;;;1283:10:0;;;;;;;1304:14;;;;;;;;;;;;1329:13;:30;839:4844;;14:137:1;-1:-1:-1;;;;;95:31:1;;85:42;;75:70;;141:1;138;131:12;75:70;14:137;:::o;156:763::-;285:6;293;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;419:9;413:16;438:37;469:5;438:37;:::i;:::-;544:2;529:18;;523:25;494:5;;-1:-1:-1;557:39:1;523:25;557:39;:::i;:::-;667:2;652:18;;646:25;615:7;;-1:-1:-1;680:39:1;646:25;680:39;:::i;:::-;790:2;775:18;;769:25;738:7;;-1:-1:-1;803:39:1;769:25;803:39;:::i;:::-;861:7;851:17;;;908:3;897:9;893:19;887:26;877:36;;156:763;;;;;;;;:::o;:::-;839:4844:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"cborAuxdata":{"1":{"value":"0xa26469706673582212203c8d70db7cc2a384b592de0e252adaa475da0f949dfbdfd45dc2a430d447dc9164736f6c634300080d0033","offset":3685}},"transformations":[{"id":"1","type":"replace","offset":3685,"reason":"cborAuxdata"},{"type":"insert","offset":3738,"reason":"constructorArguments"}],"transformationValues":{"cborAuxdata":{"1":"0xa2646970667358221220f9ce4eead929e9a34d099ab5147163c8f0c9f15668cb2bcf23307f3a28fcd64364736f6c634300080d0033"},"constructorArguments":"0x000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d710000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b0000000000000000000000008f97cca30dbe80e7a8b462f1dd1a51c32accdfc80000000000000000000000000000000000000000000069e10de76676d0800000"}},"runtimeBytecode":{"onchainBytecode":"0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063b132240d116100a2578063c600e1dc11610071578063c600e1dc1461021c578063c7ed69cd1461022f578063ea0593e414610256578063fa95a4011461027d578063fdf893f51461029057600080fd5b8063b132240d146101c3578063b891f797146101e3578063b90d0bcd146101f6578063c002e56e1461020957600080fd5b806376105f37116100de57806376105f37146101815780637e33f789146101945780638b723821146101a7578063a962ef1e146101b057600080fd5b806312d43a5114610110578063274cee31146101405780632b52684d1461016e57806369652fcf14610177575b600080fd5b600054610123906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61016061014e366004610bf4565b60046020526000908152604090205481565b604051908152602001610137565b61016060025481565b61017f6102a3565b005b61017f61018f366004610c18565b6102e8565b61017f6101a2366004610c44565b61032e565b61016060035481565b61017f6101be366004610bf4565b61035d565b6101606101d1366004610bf4565b60056020526000908152604090205481565b61017f6101f1366004610c18565b6103a9565b61017f610204366004610bf4565b610655565b61017f610217366004610bf4565b610760565b61016061022a366004610bf4565b6107ac565b6101237f000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d71081565b6101237f000000000000000000000000865377367054516e17014ccded1e7d814edc9ce481565b61017f61028b366004610c18565b6108e4565b600154610123906001600160a01b031681565b6001546001600160a01b031633146102d65760405162461bcd60e51b81526004016102cd90610c5d565b60405180910390fd5b600180546001600160a01b0319169055565b6000546001600160a01b031633146103125760405162461bcd60e51b81526004016102cd90610c81565b6001600160a01b03909116600090815260056020526040902055565b6000546001600160a01b031633146103585760405162461bcd60e51b81526004016102cd90610c81565b600255565b6000546001600160a01b031633146103875760405162461bcd60e51b81526004016102cd90610c81565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146103d35760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d7101690638e8f294b90602401602060405180830381865afa158015610439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045d9190610ca3565b61049e5760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b6001600160a01b038216600090815260046020526040902054808211156104f85760405162461bcd60e51b815260206004820152600e60248201526d414d4f554e5420544f4f2042494760901b60448201526064016102cd565b604051637d32e79360e01b8152600481018390526001600160a01b03841690637d32e79390602401600060405180830381600087803b15801561053a57600080fd5b505af115801561054e573d6000803e3d6000fd5b5050604051630852cd8d60e31b8152600481018590527f000000000000000000000000865377367054516e17014ccded1e7d814edc9ce46001600160a01b031692506342966c689150602401600060405180830381600087803b1580156105b457600080fd5b505af11580156105c8573d6000803e3d6000fd5b505050506001600160a01b038316600090815260046020526040812080548492906105f4908490610cdb565b92505081905550816003600082825461060d9190610cdb565b90915550506040518281526001600160a01b038416907f6bfec639a4f12aa59c8346bbc8be8ca30057bc316778a9919c9bda271f1741cb9060200160405180910390a2505050565b6000610660826107ac565b9050801561075c57604051637d32e79360e01b8152600481018290526001600160a01b03831690637d32e79390602401600060405180830381600087803b1580156106aa57600080fd5b505af11580156106be573d6000803e3d6000fd5b505060005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590527f000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4909116925063a9059cbb91506044016020604051808303816000875af1158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a9190610ca3565b505b5050565b6000546001600160a01b0316331461078a5760405162461bcd60e51b81526004016102cd90610c81565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080826001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190610cf2565b6040516370a0823160e01b81526001600160a01b0385811660048301527f000000000000000000000000865377367054516e17014ccded1e7d814edc9ce416906370a0823190602401602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190610cf2565b6108a59190610d0b565b6001600160a01b0384166000908152600460205260409020549091508181106108d2575060009392505050565b6108dc8183610cdb565b949350505050565b6001546001600160a01b0316331461090e5760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d7101690638e8f294b90602401602060405180830381865afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190610ca3565b6109d95760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b816001600160a01b031663bcb4bbea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190610ca3565b1515600103610a8c5760405162461bcd60e51b815260206004820152601c60248201527f43414e4e4f5420455850414e4420504155534544204d41524b4554530000000060448201526064016102cd565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000865377367054516e17014ccded1e7d814edc9ce416906340c10f1990604401600060405180830381600087803b158015610af657600080fd5b505af1158015610b0a573d6000803e3d6000fd5b505050506001600160a01b03821660009081526004602052604081208054839290610b36908490610d0b565b925050819055508060036000828254610b4f9190610d0b565b90915550506002546003541115610b6557600080fd5b6001600160a01b0382166000908152600560209081526040808320546004909252909120541115610b9557600080fd5b816001600160a01b03167fcb1a873dc7afc9834dabddc6e5643ad78e087f41a67dd561559cc6fc92686d7782604051610bd091815260200190565b60405180910390a25050565b6001600160a01b0381168114610bf157600080fd5b50565b600060208284031215610c0657600080fd5b8135610c1181610bdc565b9392505050565b60008060408385031215610c2b57600080fd5b8235610c3681610bdc565b946020939093013593505050565b600060208284031215610c5657600080fd5b5035919050565b6020808252600a908201526927a7262c9021a420a4a960b11b604082015260600190565b60208082526008908201526727a7262c9023a7ab60c11b604082015260600190565b600060208284031215610cb557600080fd5b81518015158114610c1157600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ced57610ced610cc5565b500390565b600060208284031215610d0457600080fd5b5051919050565b60008219821115610d1e57610d1e610cc5565b50019056fea2646970667358221220f9ce4eead929e9a34d099ab5147163c8f0c9f15668cb2bcf23307f3a28fcd64364736f6c634300080d0033","recompiledBytecode":"0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063b132240d116100a2578063c600e1dc11610071578063c600e1dc1461021c578063c7ed69cd1461022f578063ea0593e414610256578063fa95a4011461027d578063fdf893f51461029057600080fd5b8063b132240d146101c3578063b891f797146101e3578063b90d0bcd146101f6578063c002e56e1461020957600080fd5b806376105f37116100de57806376105f37146101815780637e33f789146101945780638b723821146101a7578063a962ef1e146101b057600080fd5b806312d43a5114610110578063274cee31146101405780632b52684d1461016e57806369652fcf14610177575b600080fd5b600054610123906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61016061014e366004610bf4565b60046020526000908152604090205481565b604051908152602001610137565b61016060025481565b61017f6102a3565b005b61017f61018f366004610c18565b6102e8565b61017f6101a2366004610c44565b61032e565b61016060035481565b61017f6101be366004610bf4565b61035d565b6101606101d1366004610bf4565b60056020526000908152604090205481565b61017f6101f1366004610c18565b6103a9565b61017f610204366004610bf4565b610655565b61017f610217366004610bf4565b610760565b61016061022a366004610bf4565b6107ac565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b61017f61028b366004610c18565b6108e4565b600154610123906001600160a01b031681565b6001546001600160a01b031633146102d65760405162461bcd60e51b81526004016102cd90610c5d565b60405180910390fd5b600180546001600160a01b0319169055565b6000546001600160a01b031633146103125760405162461bcd60e51b81526004016102cd90610c81565b6001600160a01b03909116600090815260056020526040902055565b6000546001600160a01b031633146103585760405162461bcd60e51b81526004016102cd90610c81565b600255565b6000546001600160a01b031633146103875760405162461bcd60e51b81526004016102cd90610c81565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146103d35760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045d9190610ca3565b61049e5760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b6001600160a01b038216600090815260046020526040902054808211156104f85760405162461bcd60e51b815260206004820152600e60248201526d414d4f554e5420544f4f2042494760901b60448201526064016102cd565b604051637d32e79360e01b8152600481018390526001600160a01b03841690637d32e79390602401600060405180830381600087803b15801561053a57600080fd5b505af115801561054e573d6000803e3d6000fd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c689150602401600060405180830381600087803b1580156105b457600080fd5b505af11580156105c8573d6000803e3d6000fd5b505050506001600160a01b038316600090815260046020526040812080548492906105f4908490610cdb565b92505081905550816003600082825461060d9190610cdb565b90915550506040518281526001600160a01b038416907f6bfec639a4f12aa59c8346bbc8be8ca30057bc316778a9919c9bda271f1741cb9060200160405180910390a2505050565b6000610660826107ac565b9050801561075c57604051637d32e79360e01b8152600481018290526001600160a01b03831690637d32e79390602401600060405180830381600087803b1580156106aa57600080fd5b505af11580156106be573d6000803e3d6000fd5b505060005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590527f0000000000000000000000000000000000000000000000000000000000000000909116925063a9059cbb91506044016020604051808303816000875af1158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a9190610ca3565b505b5050565b6000546001600160a01b0316331461078a5760405162461bcd60e51b81526004016102cd90610c81565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080826001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190610cf2565b6040516370a0823160e01b81526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190610cf2565b6108a59190610d0b565b6001600160a01b0384166000908152600460205260409020549091508181106108d2575060009392505050565b6108dc8183610cdb565b949350505050565b6001546001600160a01b0316331461090e5760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190610ca3565b6109d95760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b816001600160a01b031663bcb4bbea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190610ca3565b1515600103610a8c5760405162461bcd60e51b815260206004820152601c60248201527f43414e4e4f5420455850414e4420504155534544204d41524b4554530000000060448201526064016102cd565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b158015610af657600080fd5b505af1158015610b0a573d6000803e3d6000fd5b505050506001600160a01b03821660009081526004602052604081208054839290610b36908490610d0b565b925050819055508060036000828254610b4f9190610d0b565b90915550506002546003541115610b6557600080fd5b6001600160a01b0382166000908152600560209081526040808320546004909252909120541115610b9557600080fd5b816001600160a01b03167fcb1a873dc7afc9834dabddc6e5643ad78e087f41a67dd561559cc6fc92686d7782604051610bd091815260200190565b60405180910390a25050565b6001600160a01b0381168114610bf157600080fd5b50565b600060208284031215610c0657600080fd5b8135610c1181610bdc565b9392505050565b60008060408385031215610c2b57600080fd5b8235610c3681610bdc565b946020939093013593505050565b600060208284031215610c5657600080fd5b5035919050565b6020808252600a908201526927a7262c9021a420a4a960b11b604082015260600190565b60208082526008908201526727a7262c9023a7ab60c11b604082015260600190565b600060208284031215610cb557600080fd5b81518015158114610c1157600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ced57610ced610cc5565b500390565b600060208284031215610d0457600080fd5b5051919050565b60008219821115610d1e57610d1e610cc5565b50019056fea26469706673582212203c8d70db7cc2a384b592de0e252adaa475da0f949dfbdfd45dc2a430d447dc9164736f6c634300080d0033","sourceMap":"839:4844:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;927:18;;;;;-1:-1:-1;;;;;927:18:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;927::0;;;;;;;;1042:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;788:25:1;;;776:2;761:18;1042:41:0;642:177:1;979:25:0;;;;;;2813:115;;;:::i;:::-;;2185:164;;;;;;:::i;:::-;;:::i;1819:155::-;;;;;;:::i;:::-;;:::i;1011:24::-;;;;;;1536:118;;;;;;:::i;:::-;;:::i;1090:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;4296:478;;;;;;:::i;:::-;;:::i;5347:207::-;;;;;;:::i;:::-;;:::i;2487:126::-;;;;;;:::i;:::-;;:::i;4955:276::-;;;;;;:::i;:::-;;:::i;861:25::-;;;;;893:27;;;;;3348:528;;;;;;:::i;:::-;;:::i;952:20::-;;;;;-1:-1:-1;;;;;952:20:0;;;2813:115;2871:5;;-1:-1:-1;;;;;2871:5:0;2857:10;:19;2849:42;;;;-1:-1:-1;;;2849:42:0;;;;;;;:::i;:::-;;;;;;;;;2902:5;:18;;-1:-1:-1;;;;;;2902:18:0;;;2813:115::o;2185:164::-;2286:3;;-1:-1:-1;;;;;2286:3:0;2272:10;:17;2264:38;;;;-1:-1:-1;;;2264:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2313:17:0;;;;;;;:8;:17;;;;;:28;2185:164::o;1819:155::-;1909:3;;-1:-1:-1;;;;;1909:3:0;1895:10;:17;1887:38;;;;-1:-1:-1;;;1887:38:0;;;;;;;:::i;:::-;1936:13;:30;1819:155::o;1536:118::-;1609:3;;-1:-1:-1;;;;;1609:3:0;1595:10;:17;1587:38;;;;-1:-1:-1;;;1587:38:0;;;;;;;:::i;:::-;1636:3;:10;;-1:-1:-1;;;;;;1636:10:0;-1:-1:-1;;;;;1636:10:0;;;;;;;;;;1536:118::o;4296:478::-;4386:5;;-1:-1:-1;;;;;4386:5:0;4372:10;:19;4364:42;;;;-1:-1:-1;;;4364:42:0;;;;;;;:::i;:::-;4425:28;;-1:-1:-1;;;4425:28:0;;-1:-1:-1;;;;;178:32:1;;;4425:28:0;;;160:51:1;4425:3:0;:11;;;;133:18:1;;4425:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4417:59;;;;-1:-1:-1;;;4417:59:0;;3211:2:1;4417:59:0;;;3193:21:1;3250:2;3230:18;;;3223:30;-1:-1:-1;;;3269:18:1;;;3262:48;3327:18;;4417:59:0;3009:342:1;4417:59:0;-1:-1:-1;;;;;4501:16:0;;4487:11;4501:16;;;:8;:16;;;;;;4536;;;;4528:43;;;;-1:-1:-1;;;4528:43:0;;3558:2:1;4528:43:0;;;3540:21:1;3597:2;3577:18;;;3570:30;-1:-1:-1;;;3616:18:1;;;3609:44;3670:18;;4528:43:0;3356:338:1;4528:43:0;4604:21;;-1:-1:-1;;;4604:21:0;;;;;788:25:1;;;-1:-1:-1;;;;;4604:13:0;;;;;761:18:1;;4604:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4636:17:0;;-1:-1:-1;;;4636:17:0;;;;;788:25:1;;;4636:4:0;-1:-1:-1;;;;;4636:9:0;;-1:-1:-1;4636:9:0;;-1:-1:-1;761:18:1;;4636:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;4664:16:0;;;;;;:8;:16;;;;;:26;;4684:6;;4664:16;:26;;4684:6;;4664:26;:::i;:::-;;;;;;;;4717:6;4701:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;4739:27:0;;788:25:1;;;-1:-1:-1;;;;;4739:27:0;;;;;776:2:1;761:18;4739:27:0;;;;;;;4353:421;4296:478;;:::o;5347:207::-;5401:11;5415:17;5425:6;5415:9;:17::i;:::-;5401:31;-1:-1:-1;5446:10:0;;5443:104;;5473:21;;-1:-1:-1;;;5473:21:0;;;;;788:25:1;;;-1:-1:-1;;;;;5473:13:0;;;;;761:18:1;;5473:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5523:3:0;;5509:26;;-1:-1:-1;;;5509:26:0;;-1:-1:-1;;;;;5523:3:0;;;5509:26;;;4135:51:1;4202:18;;;4195:34;;;5509:4:0;:13;;;;-1:-1:-1;5509:13:0;;-1:-1:-1;4108:18:1;;5509:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5443:104;5390:164;5347:207;:::o;2487:126::-;2564:3;;-1:-1:-1;;;;;2564:3:0;2550:10;:17;2542:38;;;;-1:-1:-1;;;2542:38:0;;;;;;;:::i;:::-;2591:5;:14;;-1:-1:-1;;;;;;2591:14:0;-1:-1:-1;;;;;2591:14:0;;;;;;;;;;2487:126::o;4955:276::-;5011:4;5028:16;5081:6;-1:-1:-1;;;;;5081:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5047:31;;-1:-1:-1;;;5047:31:0;;-1:-1:-1;;;;;178:32:1;;;5047:31:0;;;160:51:1;5047:4:0;:14;;;;133:18:1;;5047:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;;;:::i;:::-;-1:-1:-1;;;;;5124:16:0;;5110:11;5124:16;;;:8;:16;;;;;;5028:71;;-1:-1:-1;5154:21:0;;;5151:34;;-1:-1:-1;5184:1:0;;4955:276;-1:-1:-1;;;4955:276:0:o;5151:34::-;5203:20;5217:6;5203:11;:20;:::i;:::-;5196:27;4955:276;-1:-1:-1;;;;4955:276:0:o;3348:528::-;3436:5;;-1:-1:-1;;;;;3436:5:0;3422:10;:19;3414:42;;;;-1:-1:-1;;;3414:42:0;;;;;;;:::i;:::-;3475:28;;-1:-1:-1;;;3475:28:0;;-1:-1:-1;;;;;178:32:1;;;3475:28:0;;;160:51:1;3475:3:0;:11;;;;133:18:1;;3475:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3467:59;;;;-1:-1:-1;;;3467:59:0;;3211:2:1;3467:59:0;;;3193:21:1;3250:2;3230:18;;;3223:30;-1:-1:-1;;;3269:18:1;;;3262:48;3327:18;;3467:59:0;3009:342:1;3467:59:0;3545:6;-1:-1:-1;;;;;3545:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;3570:4;3545:29;3537:70;;;;-1:-1:-1;;;3537:70:0;;4764:2:1;3537:70:0;;;4746:21:1;4803:2;4783:18;;;4776:30;4842;4822:18;;;4815:58;4890:18;;3537:70:0;4562:352:1;3537:70:0;3618:34;;-1:-1:-1;;;3618:34:0;;-1:-1:-1;;;;;4153:32:1;;;3618:34:0;;;4135:51:1;4202:18;;;4195:34;;;3618:4:0;:9;;;;4108:18:1;;3618:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;3663:16:0;;;;;;:8;:16;;;;;:26;;3683:6;;3663:16;:26;;3683:6;;3663:26;:::i;:::-;;;;;;;;3716:6;3700:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;3757:13:0;;3741:12;;:29;;3733:38;;;;;;-1:-1:-1;;;;;3810:16:0;;;;;;:8;:16;;;;;;;;;3790:8;:16;;;;;;;:36;;3782:45;;;;;;3853:6;-1:-1:-1;;;;;3843:25:0;;3861:6;3843:25;;;;788::1;;776:2;761:18;;642:177;3843:25:0;;;;;;;;3348:528;;:::o;222:140:1:-;-1:-1:-1;;;;;306:31:1;;296:42;;286:70;;352:1;349;342:12;286:70;222:140;:::o;367:270::-;440:6;493:2;481:9;472:7;468:23;464:32;461:52;;;509:1;506;499:12;461:52;548:9;535:23;567:40;601:5;567:40;:::i;:::-;626:5;367:270;-1:-1:-1;;;367:270:1:o;824:338::-;906:6;914;967:2;955:9;946:7;942:23;938:32;935:52;;;983:1;980;973:12;935:52;1022:9;1009:23;1041:40;1075:5;1041:40;:::i;:::-;1100:5;1152:2;1137:18;;;;1124:32;;-1:-1:-1;;;824:338:1:o;1167:180::-;1226:6;1279:2;1267:9;1258:7;1254:23;1250:32;1247:52;;;1295:1;1292;1285:12;1247:52;-1:-1:-1;1318:23:1;;1167:180;-1:-1:-1;1167:180:1:o;2052:334::-;2254:2;2236:21;;;2293:2;2273:18;;;2266:30;-1:-1:-1;;;2327:2:1;2312:18;;2305:40;2377:2;2362:18;;2052:334::o;2391:331::-;2593:2;2575:21;;;2632:1;2612:18;;;2605:29;-1:-1:-1;;;2665:2:1;2650:18;;2643:38;2713:2;2698:18;;2391:331::o;2727:277::-;2794:6;2847:2;2835:9;2826:7;2822:23;2818:32;2815:52;;;2863:1;2860;2853:12;2815:52;2895:9;2889:16;2948:5;2941:13;2934:21;2927:5;2924:32;2914:60;;2970:1;2967;2960:12;3699:127;3760:10;3755:3;3751:20;3748:1;3741:31;3791:4;3788:1;3781:15;3815:4;3812:1;3805:15;3831:125;3871:4;3899:1;3896;3893:8;3890:34;;;3904:18;;:::i;:::-;-1:-1:-1;3941:9:1;;3831:125::o;4240:184::-;4310:6;4363:2;4351:9;4342:7;4338:23;4334:32;4331:52;;;4379:1;4376;4369:12;4331:52;-1:-1:-1;4402:16:1;;4240:184;-1:-1:-1;4240:184:1:o;4429:128::-;4469:3;4500:1;4496:6;4493:1;4490:13;4487:39;;;4506:18;;:::i;:::-;-1:-1:-1;4542:9:1;;4429:128::o","linkReferences":{},"cborAuxdata":{"1":{"value":"0xa26469706673582212203c8d70db7cc2a384b592de0e252adaa475da0f949dfbdfd45dc2a430d447dc9164736f6c634300080d0033","offset":3364}},"immutableReferences":{"58":[{"start":564,"length":32},{"start":1010,"length":32},{"start":2349,"length":32}],"61":[{"start":603,"length":32},{"start":1382,"length":32},{"start":1769,"length":32},{"start":2096,"length":32},{"start":2738,"length":32}]},"transformations":[{"id":"58","type":"replace","offset":564,"reason":"immutable"},{"id":"58","type":"replace","offset":1010,"reason":"immutable"},{"id":"58","type":"replace","offset":2349,"reason":"immutable"},{"id":"61","type":"replace","offset":603,"reason":"immutable"},{"id":"61","type":"replace","offset":1382,"reason":"immutable"},{"id":"61","type":"replace","offset":1769,"reason":"immutable"},{"id":"61","type":"replace","offset":2096,"reason":"immutable"},{"id":"61","type":"replace","offset":2738,"reason":"immutable"},{"id":"1","type":"replace","offset":3364,"reason":"cborAuxdata"}],"transformationValues":{"immutables":{"58":"0x000000000000000000000000ad038eb671c44b853887a7e32528fab35dc5d710","61":"0x000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4"},"cborAuxdata":{"1":"0xa2646970667358221220f9ce4eead929e9a34d099ab5147163c8f0c9f15668cb2bcf23307f3a28fcd64364736f6c634300080d0033"}}},"deployment":{"transactionHash":"0xec65659479142a9cf47b24590a2f6a9590aadf8f9d258926d8047abc8d9e3263","blockNumber":"16158945","transactionIndex":"27","deployer":"0x3FcB35a1CbFB6007f9BC638D388958Bc4550cB28"},"sources":{"Fed.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\r\npragma solidity ^0.8.13;\r\n\r\ninterface IMarket {\r\n    function recall(uint amount) external;\r\n    function totalDebt() external view returns (uint);\r\n    function borrowPaused() external view returns (bool);\r\n}\r\n\r\ninterface IDola {\r\n    function mint(address to, uint amount) external;\r\n    function burn(uint amount) external;\r\n    function balanceOf(address user) external view returns (uint);\r\n    function transfer(address to, uint amount) external returns (bool);\r\n}\r\n\r\ninterface IDBR {\r\n    function markets(address) external view returns (bool);\r\n}\r\n\r\n/**\r\n@title The Market Fed\r\n@notice Feds are a class of contracts in the Inverse Finance ecosystem responsible for minting and burning DOLA.\r\n This specific Fed can expand DOLA supply into markets and contract DOLA supply from markets.\r\n*/\r\ncontract Fed {\r\n\r\n    IDBR public immutable dbr;\r\n    IDola public immutable dola;\r\n    address public gov;\r\n    address public chair;\r\n    uint public supplyCeiling;\r\n    uint public globalSupply;\r\n    mapping (IMarket => uint) public supplies;\r\n    mapping (IMarket => uint) public ceilings;\r\n\r\n    constructor (IDBR _dbr, IDola _dola, address _gov, address _chair, uint _supplyCeiling) {\r\n        dbr = _dbr;\r\n        dola = _dola;\r\n        gov = _gov;\r\n        chair = _chair;\r\n        supplyCeiling = _supplyCeiling;\r\n    }\r\n\r\n    /**\r\n    @notice Change the governance of the Fed contact. Only callable by governance.\r\n    @param _gov The address of the new governance contract\r\n    */\r\n    function changeGov(address _gov) public {\r\n        require(msg.sender == gov, \"ONLY GOV\");\r\n        gov = _gov;\r\n    }\r\n\r\n    /**\r\n    @notice Set the supply ceiling of the Fed. Only callable by governance.\r\n    @param _supplyCeiling Amount to set the supply ceiling to\r\n    */\r\n    function changeSupplyCeiling(uint _supplyCeiling) public {\r\n        require(msg.sender == gov, \"ONLY GOV\");\r\n        supplyCeiling = _supplyCeiling;\r\n    }\r\n\r\n    /**\r\n    @notice Set a market's isolated ceiling of the Fed. Only callable by governance.\r\n    @param _market Market to set the ceiling for\r\n    @param _ceiling Amount to set the ceiling to\r\n    */\r\n    function changeMarketCeiling(IMarket _market, uint _ceiling) public {\r\n        require(msg.sender == gov, \"ONLY GOV\");\r\n        ceilings[_market] = _ceiling;\r\n    }\r\n\r\n    /**\r\n    @notice Set the chair of the fed. Only callable by governance.\r\n    @param _chair Address of the new chair.\r\n    */\r\n    function changeChair(address _chair) public {\r\n        require(msg.sender == gov, \"ONLY GOV\");\r\n        chair = _chair;\r\n    }\r\n\r\n    /**\r\n    @notice Set the address of the chair to the 0 address. Only callable by the chair.\r\n    @dev Useful for immediately removing chair powers in case of a wallet compromise.\r\n    */\r\n    function resign() public {\r\n        require(msg.sender == chair, \"ONLY CHAIR\");\r\n        chair = address(0);\r\n    }\r\n\r\n    /**\r\n    @notice Expand the amount of DOLA by depositing the amount into a specific market.\r\n    @dev While not immediately dangerous to the DOLA peg, make sure the market can absorb the new potential supply. Market must have a positive ceiling before expansion.\r\n    @param market The market to add additional DOLA supply to.\r\n    @param amount The amount of DOLA to mint and supply to the market.\r\n    */\r\n    function expansion(IMarket market, uint amount) public {\r\n        require(msg.sender == chair, \"ONLY CHAIR\");\r\n        require(dbr.markets(address(market)), \"UNSUPPORTED MARKET\");\r\n        require(market.borrowPaused() != true, \"CANNOT EXPAND PAUSED MARKETS\");\r\n        dola.mint(address(market), amount);\r\n        supplies[market] += amount;\r\n        globalSupply += amount;\r\n        require(globalSupply <= supplyCeiling);\r\n        require(supplies[market] <= ceilings[market]);\r\n        emit Expansion(market, amount);\r\n    }\r\n\r\n    /**\r\n    @notice Contract the amount of DOLA by withdrawing some amount of DOLA from a market, before burning it.\r\n    @dev Markets can have more DOLA in them than they've been supplied, due to force replenishes. This call will revert if trying to contract more than have been supplied.\r\n    @param market The market to withdraw DOLA from\r\n    @param amount The amount of DOLA to withdraw and burn.\r\n    */\r\n    function contraction(IMarket market, uint amount) public {\r\n        require(msg.sender == chair, \"ONLY CHAIR\");\r\n        require(dbr.markets(address(market)), \"UNSUPPORTED MARKET\");\r\n        uint supply = supplies[market];\r\n        require(amount <= supply, \"AMOUNT TOO BIG\"); // can't burn profits\r\n        market.recall(amount);\r\n        dola.burn(amount);\r\n        supplies[market] -= amount;\r\n        globalSupply -= amount;\r\n        emit Contraction(market, amount);\r\n    }\r\n\r\n    /**\r\n    @notice Gets the profit of a market.\r\n    @param market The market to withdraw profit from.\r\n    @return A uint representing the profit of the market.\r\n    */\r\n    function getProfit(IMarket market) public view returns (uint) {\r\n        uint marketValue = dola.balanceOf(address(market)) + market.totalDebt();\r\n        uint supply = supplies[market];\r\n        if(supply >= marketValue) return 0;\r\n        return marketValue - supply;\r\n    }\r\n\r\n    /**\r\n    @notice Takes profit from a market\r\n    @param market The market to take profit from.\r\n    */\r\n    function takeProfit(IMarket market) public {\r\n        uint profit = getProfit(market);\r\n        if(profit > 0) {\r\n            market.recall(profit);\r\n            dola.transfer(gov, profit);\r\n        }\r\n    }\r\n\r\n\r\n    event Expansion(IMarket indexed market, uint amount);\r\n    event Contraction(IMarket indexed market, uint amount);\r\n\r\n}"}},"compilation":{"language":"Solidity","compiler":"solc","compilerVersion":"0.8.13+commit.abaa5c0e","compilerSettings":{"optimizer":{"runs":200,"enabled":true}},"name":"Fed","fullyQualifiedName":"Fed.sol:Fed"},"abi":[{"type":"constructor","inputs":[{"name":"_dbr","type":"address","internalType":"contract IDBR"},{"name":"_dola","type":"address","internalType":"contract IDola"},{"name":"_gov","type":"address","internalType":"address"},{"name":"_chair","type":"address","internalType":"address"},{"name":"_supplyCeiling","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"Contraction","type":"event","inputs":[{"name":"market","type":"address","indexed":true,"internalType":"contract IMarket"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Expansion","type":"event","inputs":[{"name":"market","type":"address","indexed":true,"internalType":"contract IMarket"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"ceilings","type":"function","inputs":[{"name":"","type":"address","internalType":"contract IMarket"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"chair","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"changeChair","type":"function","inputs":[{"name":"_chair","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"changeGov","type":"function","inputs":[{"name":"_gov","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"changeMarketCeiling","type":"function","inputs":[{"name":"_market","type":"address","internalType":"contract IMarket"},{"name":"_ceiling","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"changeSupplyCeiling","type":"function","inputs":[{"name":"_supplyCeiling","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"contraction","type":"function","inputs":[{"name":"market","type":"address","internalType":"contract IMarket"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"dbr","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDBR"}],"stateMutability":"view"},{"name":"dola","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDola"}],"stateMutability":"view"},{"name":"expansion","type":"function","inputs":[{"name":"market","type":"address","internalType":"contract IMarket"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"getProfit","type":"function","inputs":[{"name":"market","type":"address","internalType":"contract IMarket"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"globalSupply","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"gov","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"resign","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"supplies","type":"function","inputs":[{"name":"","type":"address","internalType":"contract IMarket"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"supplyCeiling","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"takeProfit","type":"function","inputs":[{"name":"market","type":"address","internalType":"contract IMarket"}],"outputs":[],"stateMutability":"nonpayable"}],"metadata":{"compiler":{"version":"0.8.13+commit.abaa5c0e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IDBR","name":"_dbr","type":"address"},{"internalType":"contract IDola","name":"_dola","type":"address"},{"internalType":"address","name":"_gov","type":"address"},{"internalType":"address","name":"_chair","type":"address"},{"internalType":"uint256","name":"_supplyCeiling","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IMarket","name":"market","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Contraction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IMarket","name":"market","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Expansion","type":"event"},{"inputs":[{"internalType":"contract IMarket","name":"","type":"address"}],"name":"ceilings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_chair","type":"address"}],"name":"changeChair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"changeGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMarket","name":"_market","type":"address"},{"internalType":"uint256","name":"_ceiling","type":"uint256"}],"name":"changeMarketCeiling","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_supplyCeiling","type":"uint256"}],"name":"changeSupplyCeiling","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMarket","name":"market","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"contraction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dbr","outputs":[{"internalType":"contract IDBR","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dola","outputs":[{"internalType":"contract IDola","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IMarket","name":"market","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"expansion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMarket","name":"market","type":"address"}],"name":"getProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"resign","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMarket","name":"","type":"address"}],"name":"supplies","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supplyCeiling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IMarket","name":"market","type":"address"}],"name":"takeProfit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{"changeChair(address)":{"params":{"_chair":"Address of the new chair."}},"changeGov(address)":{"params":{"_gov":"The address of the new governance contract"}},"changeMarketCeiling(address,uint256)":{"params":{"_ceiling":"Amount to set the ceiling to","_market":"Market to set the ceiling for"}},"changeSupplyCeiling(uint256)":{"params":{"_supplyCeiling":"Amount to set the supply ceiling to"}},"contraction(address,uint256)":{"details":"Markets can have more DOLA in them than they've been supplied, due to force replenishes. This call will revert if trying to contract more than have been supplied.","params":{"amount":"The amount of DOLA to withdraw and burn.","market":"The market to withdraw DOLA from"}},"expansion(address,uint256)":{"details":"While not immediately dangerous to the DOLA peg, make sure the market can absorb the new potential supply. Market must have a positive ceiling before expansion.","params":{"amount":"The amount of DOLA to mint and supply to the market.","market":"The market to add additional DOLA supply to."}},"getProfit(address)":{"params":{"market":"The market to withdraw profit from."},"returns":{"_0":"A uint representing the profit of the market."}},"resign()":{"details":"Useful for immediately removing chair powers in case of a wallet compromise."},"takeProfit(address)":{"params":{"market":"The market to take profit from."}}},"title":"The Market Fed","version":1},"userdoc":{"kind":"user","methods":{"changeChair(address)":{"notice":"Set the chair of the fed. Only callable by governance."},"changeGov(address)":{"notice":"Change the governance of the Fed contact. Only callable by governance."},"changeMarketCeiling(address,uint256)":{"notice":"Set a market's isolated ceiling of the Fed. Only callable by governance."},"changeSupplyCeiling(uint256)":{"notice":"Set the supply ceiling of the Fed. Only callable by governance."},"contraction(address,uint256)":{"notice":"Contract the amount of DOLA by withdrawing some amount of DOLA from a market, before burning it."},"expansion(address,uint256)":{"notice":"Expand the amount of DOLA by depositing the amount into a specific market."},"getProfit(address)":{"notice":"Gets the profit of a market."},"resign()":{"notice":"Set the address of the chair to the 0 address. Only callable by the chair."},"takeProfit(address)":{"notice":"Takes profit from a market"}},"notice":"Feds are a class of contracts in the Inverse Finance ecosystem responsible for minting and burning DOLA. This specific Fed can expand DOLA supply into markets and contract DOLA supply from markets.","version":1}},"settings":{"compilationTarget":{"Fed.sol":"Fed"},"evmVersion":"london","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"sources":{"Fed.sol":{"keccak256":"0x6080cf46b6f0d4acb8df66a8f9c89ad89f8b753104025f7f378cec3c525a8355","license":"UNLICENSED","urls":["bzz-raw://ac122c1dbe49f17204a02ddd22894df9820757799a48b6b0431e070d2459759b","dweb:/ipfs/QmRHotGxcNTg5DNdxstTz7WYqY1N19oKfqJPQ4NfMH8JoZ"]}},"version":1},"storageLayout":{"types":{"t_address":{"label":"address","encoding":"inplace","numberOfBytes":"20"},"t_uint256":{"label":"uint256","encoding":"inplace","numberOfBytes":"32"},"t_contract(IMarket)17":{"label":"contract IMarket","encoding":"inplace","numberOfBytes":"20"},"t_mapping(t_contract(IMarket)17,t_uint256)":{"key":"t_contract(IMarket)17","label":"mapping(contract IMarket => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"}},"storage":[{"slot":"0","type":"t_address","astId":63,"label":"gov","offset":0,"contract":"Fed.sol:Fed"},{"slot":"1","type":"t_address","astId":65,"label":"chair","offset":0,"contract":"Fed.sol:Fed"},{"slot":"2","type":"t_uint256","astId":67,"label":"supplyCeiling","offset":0,"contract":"Fed.sol:Fed"},{"slot":"3","type":"t_uint256","astId":69,"label":"globalSupply","offset":0,"contract":"Fed.sol:Fed"},{"slot":"4","type":"t_mapping(t_contract(IMarket)17,t_uint256)","astId":74,"label":"supplies","offset":0,"contract":"Fed.sol:Fed"},{"slot":"5","type":"t_mapping(t_contract(IMarket)17,t_uint256)","astId":79,"label":"ceilings","offset":0,"contract":"Fed.sol:Fed"}]},"transientStorageLayout":null,"userdoc":{"kind":"user","notice":"Feds are a class of contracts in the Inverse Finance ecosystem responsible for minting and burning DOLA. This specific Fed can expand DOLA supply into markets and contract DOLA supply from markets.","methods":{"resign()":{"notice":"Set the address of the chair to the 0 address. Only callable by the chair."},"changeGov(address)":{"notice":"Change the governance of the Fed contact. Only callable by governance."},"getProfit(address)":{"notice":"Gets the profit of a market."},"takeProfit(address)":{"notice":"Takes profit from a market"},"changeChair(address)":{"notice":"Set the chair of the fed. Only callable by governance."},"expansion(address,uint256)":{"notice":"Expand the amount of DOLA by depositing the amount into a specific market."},"changeSupplyCeiling(uint256)":{"notice":"Set the supply ceiling of the Fed. Only callable by governance."},"contraction(address,uint256)":{"notice":"Contract the amount of DOLA by withdrawing some amount of DOLA from a market, before burning it."},"changeMarketCeiling(address,uint256)":{"notice":"Set a market's isolated ceiling of the Fed. Only callable by governance."}},"version":1},"devdoc":{"kind":"dev","title":"The Market Fed","methods":{"resign()":{"details":"Useful for immediately removing chair powers in case of a wallet compromise."},"changeGov(address)":{"params":{"_gov":"The address of the new governance contract"}},"getProfit(address)":{"params":{"market":"The market to withdraw profit from."},"returns":{"_0":"A uint representing the profit of the market."}},"takeProfit(address)":{"params":{"market":"The market to take profit from."}},"changeChair(address)":{"params":{"_chair":"Address of the new chair."}},"expansion(address,uint256)":{"params":{"amount":"The amount of DOLA to mint and supply to the market.","market":"The market to add additional DOLA supply to."},"details":"While not immediately dangerous to the DOLA peg, make sure the market can absorb the new potential supply. Market must have a positive ceiling before expansion."},"changeSupplyCeiling(uint256)":{"params":{"_supplyCeiling":"Amount to set the supply ceiling to"}},"contraction(address,uint256)":{"params":{"amount":"The amount of DOLA to withdraw and burn.","market":"The market to withdraw DOLA from"},"details":"Markets can have more DOLA in them than they've been supplied, due to force replenishes. This call will revert if trying to contract more than have been supplied."},"changeMarketCeiling(address,uint256)":{"params":{"_market":"Market to set the ceiling for","_ceiling":"Amount to set the ceiling to"}}},"version":1},"sourceIds":{"Fed.sol":{"id":0}},"additionalInput":null,"stdJsonInput":{"sources":{"Fed.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\r\npragma solidity ^0.8.13;\r\n\r\ninterface IMarket {\r\n    function recall(uint amount) external;\r\n    function totalDebt() external view returns (uint);\r\n    function borrowPaused() external view returns (bool);\r\n}\r\n\r\ninterface IDola {\r\n    function mint(address to, uint amount) external;\r\n    function burn(uint amount) external;\r\n    function balanceOf(address user) external view returns (uint);\r\n    function transfer(address to, uint amount) external returns (bool);\r\n}\r\n\r\ninterface IDBR {\r\n    function markets(address) external view returns (bool);\r\n}\r\n\r\n/**\r\n@title The Market Fed\r\n@notice Feds are a class of contracts in the Inverse Finance ecosystem responsible for minting and burning DOLA.\r\n This specific Fed can expand DOLA supply into markets and contract DOLA supply from markets.\r\n*/\r\ncontract Fed {\r\n\r\n    IDBR public immutable dbr;\r\n    IDola public immutable dola;\r\n    address public gov;\r\n    address public chair;\r\n    uint public supplyCeiling;\r\n    uint public globalSupply;\r\n    mapping (IMarket => uint) public supplies;\r\n    mapping (IMarket => uint) public ceilings;\r\n\r\n    constructor (IDBR _dbr, IDola _dola, address _gov, address _chair, uint _supplyCeiling) {\r\n        dbr = _dbr;\r\n        dola = _dola;\r\n        gov = _gov;\r\n        chair = _chair;\r\n        supplyCeiling = _supplyCeiling;\r\n    }\r\n\r\n    /**\r\n    @notice Change the governance of the Fed contact. Only callable by governance.\r\n    @param _gov The address of the new governance contract\r\n    */\r\n    function changeGov(address _gov) public {\r\n        require(msg.sender == gov, \"ONLY GOV\");\r\n        gov = _gov;\r\n    }\r\n\r\n    /**\r\n    @notice Set the supply ceiling of the Fed. Only callable by governance.\r\n    @param _supplyCeiling Amount to set the supply ceiling to\r\n    */\r\n    function changeSupplyCeiling(uint _supplyCeiling) public {\r\n        require(msg.sender == gov, \"ONLY GOV\");\r\n        supplyCeiling = _supplyCeiling;\r\n    }\r\n\r\n    /**\r\n    @notice Set a market's isolated ceiling of the Fed. Only callable by governance.\r\n    @param _market Market to set the ceiling for\r\n    @param _ceiling Amount to set the ceiling to\r\n    */\r\n    function changeMarketCeiling(IMarket _market, uint _ceiling) public {\r\n        require(msg.sender == gov, \"ONLY GOV\");\r\n        ceilings[_market] = _ceiling;\r\n    }\r\n\r\n    /**\r\n    @notice Set the chair of the fed. Only callable by governance.\r\n    @param _chair Address of the new chair.\r\n    */\r\n    function changeChair(address _chair) public {\r\n        require(msg.sender == gov, \"ONLY GOV\");\r\n        chair = _chair;\r\n    }\r\n\r\n    /**\r\n    @notice Set the address of the chair to the 0 address. Only callable by the chair.\r\n    @dev Useful for immediately removing chair powers in case of a wallet compromise.\r\n    */\r\n    function resign() public {\r\n        require(msg.sender == chair, \"ONLY CHAIR\");\r\n        chair = address(0);\r\n    }\r\n\r\n    /**\r\n    @notice Expand the amount of DOLA by depositing the amount into a specific market.\r\n    @dev While not immediately dangerous to the DOLA peg, make sure the market can absorb the new potential supply. Market must have a positive ceiling before expansion.\r\n    @param market The market to add additional DOLA supply to.\r\n    @param amount The amount of DOLA to mint and supply to the market.\r\n    */\r\n    function expansion(IMarket market, uint amount) public {\r\n        require(msg.sender == chair, \"ONLY CHAIR\");\r\n        require(dbr.markets(address(market)), \"UNSUPPORTED MARKET\");\r\n        require(market.borrowPaused() != true, \"CANNOT EXPAND PAUSED MARKETS\");\r\n        dola.mint(address(market), amount);\r\n        supplies[market] += amount;\r\n        globalSupply += amount;\r\n        require(globalSupply <= supplyCeiling);\r\n        require(supplies[market] <= ceilings[market]);\r\n        emit Expansion(market, amount);\r\n    }\r\n\r\n    /**\r\n    @notice Contract the amount of DOLA by withdrawing some amount of DOLA from a market, before burning it.\r\n    @dev Markets can have more DOLA in them than they've been supplied, due to force replenishes. This call will revert if trying to contract more than have been supplied.\r\n    @param market The market to withdraw DOLA from\r\n    @param amount The amount of DOLA to withdraw and burn.\r\n    */\r\n    function contraction(IMarket market, uint amount) public {\r\n        require(msg.sender == chair, \"ONLY CHAIR\");\r\n        require(dbr.markets(address(market)), \"UNSUPPORTED MARKET\");\r\n        uint supply = supplies[market];\r\n        require(amount <= supply, \"AMOUNT TOO BIG\"); // can't burn profits\r\n        market.recall(amount);\r\n        dola.burn(amount);\r\n        supplies[market] -= amount;\r\n        globalSupply -= amount;\r\n        emit Contraction(market, amount);\r\n    }\r\n\r\n    /**\r\n    @notice Gets the profit of a market.\r\n    @param market The market to withdraw profit from.\r\n    @return A uint representing the profit of the market.\r\n    */\r\n    function getProfit(IMarket market) public view returns (uint) {\r\n        uint marketValue = dola.balanceOf(address(market)) + market.totalDebt();\r\n        uint supply = supplies[market];\r\n        if(supply >= marketValue) return 0;\r\n        return marketValue - supply;\r\n    }\r\n\r\n    /**\r\n    @notice Takes profit from a market\r\n    @param market The market to take profit from.\r\n    */\r\n    function takeProfit(IMarket market) public {\r\n        uint profit = getProfit(market);\r\n        if(profit > 0) {\r\n            market.recall(profit);\r\n            dola.transfer(gov, profit);\r\n        }\r\n    }\r\n\r\n\r\n    event Expansion(IMarket indexed market, uint amount);\r\n    event Contraction(IMarket indexed market, uint amount);\r\n\r\n}"}},"language":"Solidity","settings":{"optimizer":{"runs":200,"enabled":true}}},"stdJsonOutput":{"sources":{"Fed.sol":{"id":0}},"contracts":{"Fed.sol":{"Fed":{"abi":[{"type":"constructor","inputs":[{"name":"_dbr","type":"address","internalType":"contract IDBR"},{"name":"_dola","type":"address","internalType":"contract IDola"},{"name":"_gov","type":"address","internalType":"address"},{"name":"_chair","type":"address","internalType":"address"},{"name":"_supplyCeiling","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"Contraction","type":"event","inputs":[{"name":"market","type":"address","indexed":true,"internalType":"contract IMarket"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Expansion","type":"event","inputs":[{"name":"market","type":"address","indexed":true,"internalType":"contract IMarket"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"ceilings","type":"function","inputs":[{"name":"","type":"address","internalType":"contract IMarket"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"chair","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"changeChair","type":"function","inputs":[{"name":"_chair","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"changeGov","type":"function","inputs":[{"name":"_gov","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"changeMarketCeiling","type":"function","inputs":[{"name":"_market","type":"address","internalType":"contract IMarket"},{"name":"_ceiling","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"changeSupplyCeiling","type":"function","inputs":[{"name":"_supplyCeiling","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"contraction","type":"function","inputs":[{"name":"market","type":"address","internalType":"contract IMarket"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"dbr","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDBR"}],"stateMutability":"view"},{"name":"dola","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDola"}],"stateMutability":"view"},{"name":"expansion","type":"function","inputs":[{"name":"market","type":"address","internalType":"contract IMarket"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"getProfit","type":"function","inputs":[{"name":"market","type":"address","internalType":"contract IMarket"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"globalSupply","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"gov","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"resign","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"supplies","type":"function","inputs":[{"name":"","type":"address","internalType":"contract IMarket"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"supplyCeiling","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"takeProfit","type":"function","inputs":[{"name":"market","type":"address","internalType":"contract IMarket"}],"outputs":[],"stateMutability":"nonpayable"}],"metadata":"{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IDBR\",\"name\":\"_dbr\",\"type\":\"address\"},{\"internalType\":\"contract IDola\",\"name\":\"_dola\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gov\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_chair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_supplyCeiling\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IMarket\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Contraction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IMarket\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Expansion\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IMarket\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ceilings\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_chair\",\"type\":\"address\"}],\"name\":\"changeChair\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gov\",\"type\":\"address\"}],\"name\":\"changeGov\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMarket\",\"name\":\"_market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_ceiling\",\"type\":\"uint256\"}],\"name\":\"changeMarketCeiling\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_supplyCeiling\",\"type\":\"uint256\"}],\"name\":\"changeSupplyCeiling\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMarket\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"contraction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dbr\",\"outputs\":[{\"internalType\":\"contract IDBR\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dola\",\"outputs\":[{\"internalType\":\"contract IDola\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMarket\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"expansion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMarket\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getProfit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"globalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gov\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resign\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMarket\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"supplies\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyCeiling\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IMarket\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"takeProfit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"changeChair(address)\":{\"params\":{\"_chair\":\"Address of the new chair.\"}},\"changeGov(address)\":{\"params\":{\"_gov\":\"The address of the new governance contract\"}},\"changeMarketCeiling(address,uint256)\":{\"params\":{\"_ceiling\":\"Amount to set the ceiling to\",\"_market\":\"Market to set the ceiling for\"}},\"changeSupplyCeiling(uint256)\":{\"params\":{\"_supplyCeiling\":\"Amount to set the supply ceiling to\"}},\"contraction(address,uint256)\":{\"details\":\"Markets can have more DOLA in them than they've been supplied, due to force replenishes. This call will revert if trying to contract more than have been supplied.\",\"params\":{\"amount\":\"The amount of DOLA to withdraw and burn.\",\"market\":\"The market to withdraw DOLA from\"}},\"expansion(address,uint256)\":{\"details\":\"While not immediately dangerous to the DOLA peg, make sure the market can absorb the new potential supply. Market must have a positive ceiling before expansion.\",\"params\":{\"amount\":\"The amount of DOLA to mint and supply to the market.\",\"market\":\"The market to add additional DOLA supply to.\"}},\"getProfit(address)\":{\"params\":{\"market\":\"The market to withdraw profit from.\"},\"returns\":{\"_0\":\"A uint representing the profit of the market.\"}},\"resign()\":{\"details\":\"Useful for immediately removing chair powers in case of a wallet compromise.\"},\"takeProfit(address)\":{\"params\":{\"market\":\"The market to take profit from.\"}}},\"title\":\"The Market Fed\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"changeChair(address)\":{\"notice\":\"Set the chair of the fed. Only callable by governance.\"},\"changeGov(address)\":{\"notice\":\"Change the governance of the Fed contact. Only callable by governance.\"},\"changeMarketCeiling(address,uint256)\":{\"notice\":\"Set a market's isolated ceiling of the Fed. Only callable by governance.\"},\"changeSupplyCeiling(uint256)\":{\"notice\":\"Set the supply ceiling of the Fed. Only callable by governance.\"},\"contraction(address,uint256)\":{\"notice\":\"Contract the amount of DOLA by withdrawing some amount of DOLA from a market, before burning it.\"},\"expansion(address,uint256)\":{\"notice\":\"Expand the amount of DOLA by depositing the amount into a specific market.\"},\"getProfit(address)\":{\"notice\":\"Gets the profit of a market.\"},\"resign()\":{\"notice\":\"Set the address of the chair to the 0 address. Only callable by the chair.\"},\"takeProfit(address)\":{\"notice\":\"Takes profit from a market\"}},\"notice\":\"Feds are a class of contracts in the Inverse Finance ecosystem responsible for minting and burning DOLA. This specific Fed can expand DOLA supply into markets and contract DOLA supply from markets.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"Fed.sol\":\"Fed\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Fed.sol\":{\"keccak256\":\"0x6080cf46b6f0d4acb8df66a8f9c89ad89f8b753104025f7f378cec3c525a8355\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ac122c1dbe49f17204a02ddd22894df9820757799a48b6b0431e070d2459759b\",\"dweb:/ipfs/QmRHotGxcNTg5DNdxstTz7WYqY1N19oKfqJPQ4NfMH8JoZ\"]}},\"version\":1}","userdoc":{"kind":"user","notice":"Feds are a class of contracts in the Inverse Finance ecosystem responsible for minting and burning DOLA. This specific Fed can expand DOLA supply into markets and contract DOLA supply from markets.","methods":{"resign()":{"notice":"Set the address of the chair to the 0 address. Only callable by the chair."},"changeGov(address)":{"notice":"Change the governance of the Fed contact. Only callable by governance."},"getProfit(address)":{"notice":"Gets the profit of a market."},"takeProfit(address)":{"notice":"Takes profit from a market"},"changeChair(address)":{"notice":"Set the chair of the fed. Only callable by governance."},"expansion(address,uint256)":{"notice":"Expand the amount of DOLA by depositing the amount into a specific market."},"changeSupplyCeiling(uint256)":{"notice":"Set the supply ceiling of the Fed. Only callable by governance."},"contraction(address,uint256)":{"notice":"Contract the amount of DOLA by withdrawing some amount of DOLA from a market, before burning it."},"changeMarketCeiling(address,uint256)":{"notice":"Set a market's isolated ceiling of the Fed. Only callable by governance."}},"version":1},"devdoc":{"kind":"dev","title":"The Market Fed","methods":{"resign()":{"details":"Useful for immediately removing chair powers in case of a wallet compromise."},"changeGov(address)":{"params":{"_gov":"The address of the new governance contract"}},"getProfit(address)":{"params":{"market":"The market to withdraw profit from."},"returns":{"_0":"A uint representing the profit of the market."}},"takeProfit(address)":{"params":{"market":"The market to take profit from."}},"changeChair(address)":{"params":{"_chair":"Address of the new chair."}},"expansion(address,uint256)":{"params":{"amount":"The amount of DOLA to mint and supply to the market.","market":"The market to add additional DOLA supply to."},"details":"While not immediately dangerous to the DOLA peg, make sure the market can absorb the new potential supply. Market must have a positive ceiling before expansion."},"changeSupplyCeiling(uint256)":{"params":{"_supplyCeiling":"Amount to set the supply ceiling to"}},"contraction(address,uint256)":{"params":{"amount":"The amount of DOLA to withdraw and burn.","market":"The market to withdraw DOLA from"},"details":"Markets can have more DOLA in them than they've been supplied, due to force replenishes. This call will revert if trying to contract more than have been supplied."},"changeMarketCeiling(address,uint256)":{"params":{"_market":"Market to set the ceiling for","_ceiling":"Amount to set the ceiling to"}}},"version":1},"storageLayout":{"types":{"t_address":{"label":"address","encoding":"inplace","numberOfBytes":"20"},"t_uint256":{"label":"uint256","encoding":"inplace","numberOfBytes":"32"},"t_contract(IMarket)17":{"label":"contract IMarket","encoding":"inplace","numberOfBytes":"20"},"t_mapping(t_contract(IMarket)17,t_uint256)":{"key":"t_contract(IMarket)17","label":"mapping(contract IMarket => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"}},"storage":[{"slot":"0","type":"t_address","astId":63,"label":"gov","offset":0,"contract":"Fed.sol:Fed"},{"slot":"1","type":"t_address","astId":65,"label":"chair","offset":0,"contract":"Fed.sol:Fed"},{"slot":"2","type":"t_uint256","astId":67,"label":"supplyCeiling","offset":0,"contract":"Fed.sol:Fed"},{"slot":"3","type":"t_uint256","astId":69,"label":"globalSupply","offset":0,"contract":"Fed.sol:Fed"},{"slot":"4","type":"t_mapping(t_contract(IMarket)17,t_uint256)","astId":74,"label":"supplies","offset":0,"contract":"Fed.sol:Fed"},{"slot":"5","type":"t_mapping(t_contract(IMarket)17,t_uint256)","astId":79,"label":"ceilings","offset":0,"contract":"Fed.sol:Fed"}]},"transientStorageLayout":null,"evm":{"bytecode":{"object":"60c060405234801561001057600080fd5b50604051610e9a380380610e9a83398101604081905261002f91610087565b6001600160a01b0394851660805292841660a052600080549285166001600160a01b031993841617905560018054919094169116179091556002556100f2565b6001600160a01b038116811461008457600080fd5b50565b600080600080600060a0868803121561009f57600080fd5b85516100aa8161006f565b60208701519095506100bb8161006f565b60408701519094506100cc8161006f565b60608701519093506100dd8161006f565b80925050608086015190509295509295909350565b60805160a051610d596101416000396000818161025b01528181610566015281816106e9015281816108300152610ab2015260008181610234015281816103f2015261092d0152610d596000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063b132240d116100a2578063c600e1dc11610071578063c600e1dc1461021c578063c7ed69cd1461022f578063ea0593e414610256578063fa95a4011461027d578063fdf893f51461029057600080fd5b8063b132240d146101c3578063b891f797146101e3578063b90d0bcd146101f6578063c002e56e1461020957600080fd5b806376105f37116100de57806376105f37146101815780637e33f789146101945780638b723821146101a7578063a962ef1e146101b057600080fd5b806312d43a5114610110578063274cee31146101405780632b52684d1461016e57806369652fcf14610177575b600080fd5b600054610123906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61016061014e366004610bf4565b60046020526000908152604090205481565b604051908152602001610137565b61016060025481565b61017f6102a3565b005b61017f61018f366004610c18565b6102e8565b61017f6101a2366004610c44565b61032e565b61016060035481565b61017f6101be366004610bf4565b61035d565b6101606101d1366004610bf4565b60056020526000908152604090205481565b61017f6101f1366004610c18565b6103a9565b61017f610204366004610bf4565b610655565b61017f610217366004610bf4565b610760565b61016061022a366004610bf4565b6107ac565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b61017f61028b366004610c18565b6108e4565b600154610123906001600160a01b031681565b6001546001600160a01b031633146102d65760405162461bcd60e51b81526004016102cd90610c5d565b60405180910390fd5b600180546001600160a01b0319169055565b6000546001600160a01b031633146103125760405162461bcd60e51b81526004016102cd90610c81565b6001600160a01b03909116600090815260056020526040902055565b6000546001600160a01b031633146103585760405162461bcd60e51b81526004016102cd90610c81565b600255565b6000546001600160a01b031633146103875760405162461bcd60e51b81526004016102cd90610c81565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146103d35760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045d9190610ca3565b61049e5760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b6001600160a01b038216600090815260046020526040902054808211156104f85760405162461bcd60e51b815260206004820152600e60248201526d414d4f554e5420544f4f2042494760901b60448201526064016102cd565b604051637d32e79360e01b8152600481018390526001600160a01b03841690637d32e79390602401600060405180830381600087803b15801561053a57600080fd5b505af115801561054e573d6000803e3d6000fd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c689150602401600060405180830381600087803b1580156105b457600080fd5b505af11580156105c8573d6000803e3d6000fd5b505050506001600160a01b038316600090815260046020526040812080548492906105f4908490610cdb565b92505081905550816003600082825461060d9190610cdb565b90915550506040518281526001600160a01b038416907f6bfec639a4f12aa59c8346bbc8be8ca30057bc316778a9919c9bda271f1741cb9060200160405180910390a2505050565b6000610660826107ac565b9050801561075c57604051637d32e79360e01b8152600481018290526001600160a01b03831690637d32e79390602401600060405180830381600087803b1580156106aa57600080fd5b505af11580156106be573d6000803e3d6000fd5b505060005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590527f0000000000000000000000000000000000000000000000000000000000000000909116925063a9059cbb91506044016020604051808303816000875af1158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a9190610ca3565b505b5050565b6000546001600160a01b0316331461078a5760405162461bcd60e51b81526004016102cd90610c81565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080826001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190610cf2565b6040516370a0823160e01b81526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190610cf2565b6108a59190610d0b565b6001600160a01b0384166000908152600460205260409020549091508181106108d2575060009392505050565b6108dc8183610cdb565b949350505050565b6001546001600160a01b0316331461090e5760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190610ca3565b6109d95760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b816001600160a01b031663bcb4bbea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190610ca3565b1515600103610a8c5760405162461bcd60e51b815260206004820152601c60248201527f43414e4e4f5420455850414e4420504155534544204d41524b4554530000000060448201526064016102cd565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b158015610af657600080fd5b505af1158015610b0a573d6000803e3d6000fd5b505050506001600160a01b03821660009081526004602052604081208054839290610b36908490610d0b565b925050819055508060036000828254610b4f9190610d0b565b90915550506002546003541115610b6557600080fd5b6001600160a01b0382166000908152600560209081526040808320546004909252909120541115610b9557600080fd5b816001600160a01b03167fcb1a873dc7afc9834dabddc6e5643ad78e087f41a67dd561559cc6fc92686d7782604051610bd091815260200190565b60405180910390a25050565b6001600160a01b0381168114610bf157600080fd5b50565b600060208284031215610c0657600080fd5b8135610c1181610bdc565b9392505050565b60008060408385031215610c2b57600080fd5b8235610c3681610bdc565b946020939093013593505050565b600060208284031215610c5657600080fd5b5035919050565b6020808252600a908201526927a7262c9021a420a4a960b11b604082015260600190565b60208082526008908201526727a7262c9023a7ab60c11b604082015260600190565b600060208284031215610cb557600080fd5b81518015158114610c1157600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ced57610ced610cc5565b500390565b600060208284031215610d0457600080fd5b5051919050565b60008219821115610d1e57610d1e610cc5565b50019056fea26469706673582212203c8d70db7cc2a384b592de0e252adaa475da0f949dfbdfd45dc2a430d447dc9164736f6c634300080d0033","sourceMap":"839:4844:0:-:0;;;1140:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1239:10:0;;;;;1260:12;;;;;1283:3;:10;;;;;-1:-1:-1;;;;;;1283:10:0;;;;;;;1304:14;;;;;;;;;;;;1329:13;:30;839:4844;;14:137:1;-1:-1:-1;;;;;95:31:1;;85:42;;75:70;;141:1;138;131:12;75:70;14:137;:::o;156:763::-;285:6;293;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;419:9;413:16;438:37;469:5;438:37;:::i;:::-;544:2;529:18;;523:25;494:5;;-1:-1:-1;557:39:1;523:25;557:39;:::i;:::-;667:2;652:18;;646:25;615:7;;-1:-1:-1;680:39:1;646:25;680:39;:::i;:::-;790:2;775:18;;769:25;738:7;;-1:-1:-1;803:39:1;769:25;803:39;:::i;:::-;861:7;851:17;;;908:3;897:9;893:19;887:26;877:36;;156:763;;;;;;;;:::o;:::-;839:4844:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"608060405234801561001057600080fd5b506004361061010b5760003560e01c8063b132240d116100a2578063c600e1dc11610071578063c600e1dc1461021c578063c7ed69cd1461022f578063ea0593e414610256578063fa95a4011461027d578063fdf893f51461029057600080fd5b8063b132240d146101c3578063b891f797146101e3578063b90d0bcd146101f6578063c002e56e1461020957600080fd5b806376105f37116100de57806376105f37146101815780637e33f789146101945780638b723821146101a7578063a962ef1e146101b057600080fd5b806312d43a5114610110578063274cee31146101405780632b52684d1461016e57806369652fcf14610177575b600080fd5b600054610123906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61016061014e366004610bf4565b60046020526000908152604090205481565b604051908152602001610137565b61016060025481565b61017f6102a3565b005b61017f61018f366004610c18565b6102e8565b61017f6101a2366004610c44565b61032e565b61016060035481565b61017f6101be366004610bf4565b61035d565b6101606101d1366004610bf4565b60056020526000908152604090205481565b61017f6101f1366004610c18565b6103a9565b61017f610204366004610bf4565b610655565b61017f610217366004610bf4565b610760565b61016061022a366004610bf4565b6107ac565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b6101237f000000000000000000000000000000000000000000000000000000000000000081565b61017f61028b366004610c18565b6108e4565b600154610123906001600160a01b031681565b6001546001600160a01b031633146102d65760405162461bcd60e51b81526004016102cd90610c5d565b60405180910390fd5b600180546001600160a01b0319169055565b6000546001600160a01b031633146103125760405162461bcd60e51b81526004016102cd90610c81565b6001600160a01b03909116600090815260056020526040902055565b6000546001600160a01b031633146103585760405162461bcd60e51b81526004016102cd90610c81565b600255565b6000546001600160a01b031633146103875760405162461bcd60e51b81526004016102cd90610c81565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146103d35760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045d9190610ca3565b61049e5760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b6001600160a01b038216600090815260046020526040902054808211156104f85760405162461bcd60e51b815260206004820152600e60248201526d414d4f554e5420544f4f2042494760901b60448201526064016102cd565b604051637d32e79360e01b8152600481018390526001600160a01b03841690637d32e79390602401600060405180830381600087803b15801561053a57600080fd5b505af115801561054e573d6000803e3d6000fd5b5050604051630852cd8d60e31b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506342966c689150602401600060405180830381600087803b1580156105b457600080fd5b505af11580156105c8573d6000803e3d6000fd5b505050506001600160a01b038316600090815260046020526040812080548492906105f4908490610cdb565b92505081905550816003600082825461060d9190610cdb565b90915550506040518281526001600160a01b038416907f6bfec639a4f12aa59c8346bbc8be8ca30057bc316778a9919c9bda271f1741cb9060200160405180910390a2505050565b6000610660826107ac565b9050801561075c57604051637d32e79360e01b8152600481018290526001600160a01b03831690637d32e79390602401600060405180830381600087803b1580156106aa57600080fd5b505af11580156106be573d6000803e3d6000fd5b505060005460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590527f0000000000000000000000000000000000000000000000000000000000000000909116925063a9059cbb91506044016020604051808303816000875af1158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a9190610ca3565b505b5050565b6000546001600160a01b0316331461078a5760405162461bcd60e51b81526004016102cd90610c81565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080826001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190610cf2565b6040516370a0823160e01b81526001600160a01b0385811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089b9190610cf2565b6108a59190610d0b565b6001600160a01b0384166000908152600460205260409020549091508181106108d2575060009392505050565b6108dc8183610cdb565b949350505050565b6001546001600160a01b0316331461090e5760405162461bcd60e51b81526004016102cd90610c5d565b604051638e8f294b60e01b81526001600160a01b0383811660048301527f00000000000000000000000000000000000000000000000000000000000000001690638e8f294b90602401602060405180830381865afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109989190610ca3565b6109d95760405162461bcd60e51b8152602060048201526012602482015271155394d5541413d49511510813505492d15560721b60448201526064016102cd565b816001600160a01b031663bcb4bbea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190610ca3565b1515600103610a8c5760405162461bcd60e51b815260206004820152601c60248201527f43414e4e4f5420455850414e4420504155534544204d41524b4554530000000060448201526064016102cd565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b158015610af657600080fd5b505af1158015610b0a573d6000803e3d6000fd5b505050506001600160a01b03821660009081526004602052604081208054839290610b36908490610d0b565b925050819055508060036000828254610b4f9190610d0b565b90915550506002546003541115610b6557600080fd5b6001600160a01b0382166000908152600560209081526040808320546004909252909120541115610b9557600080fd5b816001600160a01b03167fcb1a873dc7afc9834dabddc6e5643ad78e087f41a67dd561559cc6fc92686d7782604051610bd091815260200190565b60405180910390a25050565b6001600160a01b0381168114610bf157600080fd5b50565b600060208284031215610c0657600080fd5b8135610c1181610bdc565b9392505050565b60008060408385031215610c2b57600080fd5b8235610c3681610bdc565b946020939093013593505050565b600060208284031215610c5657600080fd5b5035919050565b6020808252600a908201526927a7262c9021a420a4a960b11b604082015260600190565b60208082526008908201526727a7262c9023a7ab60c11b604082015260600190565b600060208284031215610cb557600080fd5b81518015158114610c1157600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ced57610ced610cc5565b500390565b600060208284031215610d0457600080fd5b5051919050565b60008219821115610d1e57610d1e610cc5565b50019056fea26469706673582212203c8d70db7cc2a384b592de0e252adaa475da0f949dfbdfd45dc2a430d447dc9164736f6c634300080d0033","sourceMap":"839:4844:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;927:18;;;;;-1:-1:-1;;;;;927:18:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;927::0;;;;;;;;1042:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;788:25:1;;;776:2;761:18;1042:41:0;642:177:1;979:25:0;;;;;;2813:115;;;:::i;:::-;;2185:164;;;;;;:::i;:::-;;:::i;1819:155::-;;;;;;:::i;:::-;;:::i;1011:24::-;;;;;;1536:118;;;;;;:::i;:::-;;:::i;1090:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;4296:478;;;;;;:::i;:::-;;:::i;5347:207::-;;;;;;:::i;:::-;;:::i;2487:126::-;;;;;;:::i;:::-;;:::i;4955:276::-;;;;;;:::i;:::-;;:::i;861:25::-;;;;;893:27;;;;;3348:528;;;;;;:::i;:::-;;:::i;952:20::-;;;;;-1:-1:-1;;;;;952:20:0;;;2813:115;2871:5;;-1:-1:-1;;;;;2871:5:0;2857:10;:19;2849:42;;;;-1:-1:-1;;;2849:42:0;;;;;;;:::i;:::-;;;;;;;;;2902:5;:18;;-1:-1:-1;;;;;;2902:18:0;;;2813:115::o;2185:164::-;2286:3;;-1:-1:-1;;;;;2286:3:0;2272:10;:17;2264:38;;;;-1:-1:-1;;;2264:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2313:17:0;;;;;;;:8;:17;;;;;:28;2185:164::o;1819:155::-;1909:3;;-1:-1:-1;;;;;1909:3:0;1895:10;:17;1887:38;;;;-1:-1:-1;;;1887:38:0;;;;;;;:::i;:::-;1936:13;:30;1819:155::o;1536:118::-;1609:3;;-1:-1:-1;;;;;1609:3:0;1595:10;:17;1587:38;;;;-1:-1:-1;;;1587:38:0;;;;;;;:::i;:::-;1636:3;:10;;-1:-1:-1;;;;;;1636:10:0;-1:-1:-1;;;;;1636:10:0;;;;;;;;;;1536:118::o;4296:478::-;4386:5;;-1:-1:-1;;;;;4386:5:0;4372:10;:19;4364:42;;;;-1:-1:-1;;;4364:42:0;;;;;;;:::i;:::-;4425:28;;-1:-1:-1;;;4425:28:0;;-1:-1:-1;;;;;178:32:1;;;4425:28:0;;;160:51:1;4425:3:0;:11;;;;133:18:1;;4425:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4417:59;;;;-1:-1:-1;;;4417:59:0;;3211:2:1;4417:59:0;;;3193:21:1;3250:2;3230:18;;;3223:30;-1:-1:-1;;;3269:18:1;;;3262:48;3327:18;;4417:59:0;3009:342:1;4417:59:0;-1:-1:-1;;;;;4501:16:0;;4487:11;4501:16;;;:8;:16;;;;;;4536;;;;4528:43;;;;-1:-1:-1;;;4528:43:0;;3558:2:1;4528:43:0;;;3540:21:1;3597:2;3577:18;;;3570:30;-1:-1:-1;;;3616:18:1;;;3609:44;3670:18;;4528:43:0;3356:338:1;4528:43:0;4604:21;;-1:-1:-1;;;4604:21:0;;;;;788:25:1;;;-1:-1:-1;;;;;4604:13:0;;;;;761:18:1;;4604:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4636:17:0;;-1:-1:-1;;;4636:17:0;;;;;788:25:1;;;4636:4:0;-1:-1:-1;;;;;4636:9:0;;-1:-1:-1;4636:9:0;;-1:-1:-1;761:18:1;;4636:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;4664:16:0;;;;;;:8;:16;;;;;:26;;4684:6;;4664:16;:26;;4684:6;;4664:26;:::i;:::-;;;;;;;;4717:6;4701:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;4739:27:0;;788:25:1;;;-1:-1:-1;;;;;4739:27:0;;;;;776:2:1;761:18;4739:27:0;;;;;;;4353:421;4296:478;;:::o;5347:207::-;5401:11;5415:17;5425:6;5415:9;:17::i;:::-;5401:31;-1:-1:-1;5446:10:0;;5443:104;;5473:21;;-1:-1:-1;;;5473:21:0;;;;;788:25:1;;;-1:-1:-1;;;;;5473:13:0;;;;;761:18:1;;5473:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5523:3:0;;5509:26;;-1:-1:-1;;;5509:26:0;;-1:-1:-1;;;;;5523:3:0;;;5509:26;;;4135:51:1;4202:18;;;4195:34;;;5509:4:0;:13;;;;-1:-1:-1;5509:13:0;;-1:-1:-1;4108:18:1;;5509:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5443:104;5390:164;5347:207;:::o;2487:126::-;2564:3;;-1:-1:-1;;;;;2564:3:0;2550:10;:17;2542:38;;;;-1:-1:-1;;;2542:38:0;;;;;;;:::i;:::-;2591:5;:14;;-1:-1:-1;;;;;;2591:14:0;-1:-1:-1;;;;;2591:14:0;;;;;;;;;;2487:126::o;4955:276::-;5011:4;5028:16;5081:6;-1:-1:-1;;;;;5081:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5047:31;;-1:-1:-1;;;5047:31:0;;-1:-1:-1;;;;;178:32:1;;;5047:31:0;;;160:51:1;5047:4:0;:14;;;;133:18:1;;5047:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;;;:::i;:::-;-1:-1:-1;;;;;5124:16:0;;5110:11;5124:16;;;:8;:16;;;;;;5028:71;;-1:-1:-1;5154:21:0;;;5151:34;;-1:-1:-1;5184:1:0;;4955:276;-1:-1:-1;;;4955:276:0:o;5151:34::-;5203:20;5217:6;5203:11;:20;:::i;:::-;5196:27;4955:276;-1:-1:-1;;;;4955:276:0:o;3348:528::-;3436:5;;-1:-1:-1;;;;;3436:5:0;3422:10;:19;3414:42;;;;-1:-1:-1;;;3414:42:0;;;;;;;:::i;:::-;3475:28;;-1:-1:-1;;;3475:28:0;;-1:-1:-1;;;;;178:32:1;;;3475:28:0;;;160:51:1;3475:3:0;:11;;;;133:18:1;;3475:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3467:59;;;;-1:-1:-1;;;3467:59:0;;3211:2:1;3467:59:0;;;3193:21:1;3250:2;3230:18;;;3223:30;-1:-1:-1;;;3269:18:1;;;3262:48;3327:18;;3467:59:0;3009:342:1;3467:59:0;3545:6;-1:-1:-1;;;;;3545:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;3570:4;3545:29;3537:70;;;;-1:-1:-1;;;3537:70:0;;4764:2:1;3537:70:0;;;4746:21:1;4803:2;4783:18;;;4776:30;4842;4822:18;;;4815:58;4890:18;;3537:70:0;4562:352:1;3537:70:0;3618:34;;-1:-1:-1;;;3618:34:0;;-1:-1:-1;;;;;4153:32:1;;;3618:34:0;;;4135:51:1;4202:18;;;4195:34;;;3618:4:0;:9;;;;4108:18:1;;3618:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;3663:16:0;;;;;;:8;:16;;;;;:26;;3683:6;;3663:16;:26;;3683:6;;3663:26;:::i;:::-;;;;;;;;3716:6;3700:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;3757:13:0;;3741:12;;:29;;3733:38;;;;;;-1:-1:-1;;;;;3810:16:0;;;;;;:8;:16;;;;;;;;;3790:8;:16;;;;;;;:36;;3782:45;;;;;;3853:6;-1:-1:-1;;;;;3843:25:0;;3861:6;3843:25;;;;788::1;;776:2;761:18;;642:177;3843:25:0;;;;;;;;3348:528;;:::o;222:140:1:-;-1:-1:-1;;;;;306:31:1;;296:42;;286:70;;352:1;349;342:12;286:70;222:140;:::o;367:270::-;440:6;493:2;481:9;472:7;468:23;464:32;461:52;;;509:1;506;499:12;461:52;548:9;535:23;567:40;601:5;567:40;:::i;:::-;626:5;367:270;-1:-1:-1;;;367:270:1:o;824:338::-;906:6;914;967:2;955:9;946:7;942:23;938:32;935:52;;;983:1;980;973:12;935:52;1022:9;1009:23;1041:40;1075:5;1041:40;:::i;:::-;1100:5;1152:2;1137:18;;;;1124:32;;-1:-1:-1;;;824:338:1:o;1167:180::-;1226:6;1279:2;1267:9;1258:7;1254:23;1250:32;1247:52;;;1295:1;1292;1285:12;1247:52;-1:-1:-1;1318:23:1;;1167:180;-1:-1:-1;1167:180:1:o;2052:334::-;2254:2;2236:21;;;2293:2;2273:18;;;2266:30;-1:-1:-1;;;2327:2:1;2312:18;;2305:40;2377:2;2362:18;;2052:334::o;2391:331::-;2593:2;2575:21;;;2632:1;2612:18;;;2605:29;-1:-1:-1;;;2665:2:1;2650:18;;2643:38;2713:2;2698:18;;2391:331::o;2727:277::-;2794:6;2847:2;2835:9;2826:7;2822:23;2818:32;2815:52;;;2863:1;2860;2853:12;2815:52;2895:9;2889:16;2948:5;2941:13;2934:21;2927:5;2924:32;2914:60;;2970:1;2967;2960:12;3699:127;3760:10;3755:3;3751:20;3748:1;3741:31;3791:4;3788:1;3781:15;3815:4;3812:1;3805:15;3831:125;3871:4;3899:1;3896;3893:8;3890:34;;;3904:18;;:::i;:::-;-1:-1:-1;3941:9:1;;3831:125::o;4240:184::-;4310:6;4363:2;4351:9;4342:7;4338:23;4334:32;4331:52;;;4379:1;4376;4369:12;4331:52;-1:-1:-1;4402:16:1;;4240:184;-1:-1:-1;4240:184:1:o;4429:128::-;4469:3;4500:1;4496:6;4493:1;4490:13;4487:39;;;4506:18;;:::i;:::-;-1:-1:-1;4542:9:1;;4429:128::o","linkReferences":{},"immutableReferences":{"58":[{"start":564,"length":32},{"start":1010,"length":32},{"start":2349,"length":32}],"61":[{"start":603,"length":32},{"start":1382,"length":32},{"start":1769,"length":32},{"start":2096,"length":32},{"start":2738,"length":32}]}}}}}}},"signatures":{"function":[{"signature":"ceilings(address)","signatureHash4":"0xb132240d","signatureHash32":"0xb132240deb0e0750f15c8c9576050a8c033ebaa9abab3d39f88ae872284f5ac5"},{"signature":"chair()","signatureHash4":"0xfdf893f5","signatureHash32":"0xfdf893f5c69e19fb85a633c8d6b6b33dbaf4e71fb9dd335fee26fe9acc6fbeac"},{"signature":"changeChair(address)","signatureHash4":"0xc002e56e","signatureHash32":"0xc002e56ee726f0cc7cc54676afa6ed65665c8192c13000d31faee2a1926bd48f"},{"signature":"changeGov(address)","signatureHash4":"0xa962ef1e","signatureHash32":"0xa962ef1e35fcc13665f25762546861e0daa4194bff4187345d89bbfae1972af0"},{"signature":"changeMarketCeiling(address,uint256)","signatureHash4":"0x76105f37","signatureHash32":"0x76105f376279263ff1e3fbba881ff055fa476f94e51dc0431052cccbd220388b"},{"signature":"changeSupplyCeiling(uint256)","signatureHash4":"0x7e33f789","signatureHash32":"0x7e33f789aa5367b941e858d75fa52f1297b75afa81345ac96ac52624fc068587"},{"signature":"contraction(address,uint256)","signatureHash4":"0xb891f797","signatureHash32":"0xb891f797932a441271a01207e176b6ecb59854c6814e6b43ce35cf75187734e5"},{"signature":"dbr()","signatureHash4":"0xc7ed69cd","signatureHash32":"0xc7ed69cdfe8507b6cb110bb28e5ec1262851d004171ba3cd09faf7b07f50d89d"},{"signature":"dola()","signatureHash4":"0xea0593e4","signatureHash32":"0xea0593e48cc3147332d2b96af324988a0b22091f23d1fa06cb6779771d16a0ec"},{"signature":"expansion(address,uint256)","signatureHash4":"0xfa95a401","signatureHash32":"0xfa95a40155d628d327eec89970f7b1ceeba7ff9ad0f5cc57a20578bf684fe215"},{"signature":"getProfit(address)","signatureHash4":"0xc600e1dc","signatureHash32":"0xc600e1dc38f18d4c91157e344bbdc57485d9add3f7cda8982cc9af26c5377f97"},{"signature":"globalSupply()","signatureHash4":"0x8b723821","signatureHash32":"0x8b7238214e6d663ee2acb853e3097e615d0223d037f0390bc87fabd5e0017037"},{"signature":"gov()","signatureHash4":"0x12d43a51","signatureHash32":"0x12d43a5113d1a5a043fb0a1e225271349c3281c88b25aa7a29badb328e05e064"},{"signature":"resign()","signatureHash4":"0x69652fcf","signatureHash32":"0x69652fcf6026f072ab393fdc0356633188ec2de314b49a5569ac395edb4e5c2e"},{"signature":"supplies(address)","signatureHash4":"0x274cee31","signatureHash32":"0x274cee3145a6d4282d8f5c266ca15d81623023d99b04f02f90599f441deaf4fe"},{"signature":"supplyCeiling()","signatureHash4":"0x2b52684d","signatureHash32":"0x2b52684d91796b027b89157bf2bf71c97641ab997b30cc91992544a20cbd556e"},{"signature":"takeProfit(address)","signatureHash4":"0xb90d0bcd","signatureHash32":"0xb90d0bcde8814ded2d25f348117fb976db6f5d807e7409fb890d66f3fe9ada53"}],"event":[{"signature":"Contraction(address,uint256)","signatureHash4":"0x6bfec639","signatureHash32":"0x6bfec639a4f12aa59c8346bbc8be8ca30057bc316778a9919c9bda271f1741cb"},{"signature":"Expansion(address,uint256)","signatureHash4":"0xcb1a873d","signatureHash32":"0xcb1a873dc7afc9834dabddc6e5643ad78e087f41a67dd561559cc6fc92686d77"}],"error":[]},"proxyResolution":{"isProxy":false,"proxyType":null,"implementations":[]},"match":"match","chainId":"1","address":"0x2b34548b865ad66A2B046cb82e59eE43F75B90fd"}