{
  "_format": "hh-sol-artifact-1",
  "contractName": "Compound",
  "sourceName": "contracts/protocol/integration/lib/Compound.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cToken",
          "type": "ICErc20"
        },
        {
          "internalType": "uint256",
          "name": "_notionalBorrowQuantity",
          "type": "uint256"
        }
      ],
      "name": "getBorrowCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cToken",
          "type": "ICErc20"
        },
        {
          "internalType": "contract IComptroller",
          "name": "_comptroller",
          "type": "IComptroller"
        }
      ],
      "name": "getEnterMarketsCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cToken",
          "type": "ICErc20"
        },
        {
          "internalType": "contract IComptroller",
          "name": "_comptroller",
          "type": "IComptroller"
        }
      ],
      "name": "getExitMarketCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cEther",
          "type": "ICErc20"
        },
        {
          "internalType": "uint256",
          "name": "_mintNotional",
          "type": "uint256"
        }
      ],
      "name": "getMintCEtherCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cToken",
          "type": "ICErc20"
        },
        {
          "internalType": "uint256",
          "name": "_mintNotional",
          "type": "uint256"
        }
      ],
      "name": "getMintCTokenCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cToken",
          "type": "ICErc20"
        },
        {
          "internalType": "uint256",
          "name": "_redeemNotional",
          "type": "uint256"
        }
      ],
      "name": "getRedeemCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cToken",
          "type": "ICErc20"
        },
        {
          "internalType": "uint256",
          "name": "_redeemNotional",
          "type": "uint256"
        }
      ],
      "name": "getRedeemUnderlyingCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cToken",
          "type": "ICErc20"
        },
        {
          "internalType": "uint256",
          "name": "_repayNotional",
          "type": "uint256"
        }
      ],
      "name": "getRepayBorrowCEtherCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICErc20",
          "name": "_cToken",
          "type": "ICErc20"
        },
        {
          "internalType": "uint256",
          "name": "_repayNotional",
          "type": "uint256"
        }
      ],
      "name": "getRepayBorrowCTokenCalldata",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x611a07610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101205760003560e01c8063944d008d116100ac578063a753734e1161007b578063a753734e14610474578063aed2dfc9146104a0578063b17faf1c146104e3578063beee4b4b14610528578063fa872cfa1461056b57610120565b8063944d008d146103ad5780639653f879146103f0578063a2ca57e01461041c578063a2f976581461044857610120565b80633c77439c116100f35780633c77439c146102a157806343472132146102cf5780635d202591146102fb578063690f65611461033e5780636d4aada51461038157610120565b806301fd16b21461012557806309c09c90146101e957806309c8202b146102305780632c66b57e14610273575b600080fd5b6101516004803603604081101561013b57600080fd5b506001600160a01b0381351690602001356105ae565b60405180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101ac578181015183820152602001610194565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b8180156101f557600080fd5b5061022e6004803603606081101561020c57600080fd5b506001600160a01b0381358116916020810135821691604090910135166105ec565b005b81801561023c57600080fd5b5061022e6004803603606081101561025357600080fd5b506001600160a01b03813581169160208101359091169060400135610811565b6101516004803603604081101561028957600080fd5b506001600160a01b0381358116916020013516610a2d565b610151600480360360408110156102b757600080fd5b506001600160a01b0381358116916020013516610b05565b610151600480360360408110156102e557600080fd5b506001600160a01b038135169060200135610b50565b81801561030757600080fd5b5061022e6004803603606081101561031e57600080fd5b506001600160a01b03813581169160208101359091169060400135610b80565b81801561034a57600080fd5b5061022e6004803603606081101561036157600080fd5b506001600160a01b03813581169160208101359091169060400135610d4c565b6101516004803603604081101561039757600080fd5b506001600160a01b038135169060200135610d54565b8180156103b957600080fd5b5061022e600480360360608110156103d057600080fd5b506001600160a01b03813581169160208101359091169060400135610d84565b6101516004803603604081101561040657600080fd5b506001600160a01b038135169060200135610fa2565b6101516004803603604081101561043257600080fd5b506001600160a01b038135169060200135610fe1565b6101516004803603604081101561045e57600080fd5b506001600160a01b038135169060200135611020565b6101516004803603604081101561048a57600080fd5b506001600160a01b03813516906020013561105f565b8180156104ac57600080fd5b5061022e600480360360608110156104c357600080fd5b506001600160a01b0381358116916020810135909116906040013561109e565b8180156104ef57600080fd5b5061022e6004803603606081101561050657600080fd5b506001600160a01b0381358116916020810135821691604090910135166112cc565b81801561053457600080fd5b5061022e6004803603606081101561054b57600080fd5b506001600160a01b03813581169160208101359091169060400135611596565b81801561057757600080fd5b5061022e6004803603606081101561058e57600080fd5b506001600160a01b038135811691602081013590911690604001356117b4565b604080516024808201939093528151808203909301835260440190526020810180516001600160e01b031663317afabb60e21b179052909160009190565b60606105f88383610b05565b92505050836001600160a01b0316638f6f0332836000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610679578181015183820152602001610661565b50505050905090810190601f1680156106a65780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156106c757600080fd5b505af11580156106db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561070457600080fd5b8101908080516040519392919084600160201b82111561072357600080fd5b90830190602082018581111561073857600080fd5b8251600160201b81118282018810171561075157600080fd5b82525081516020918201929091019080838360005b8381101561077e578181015183820152602001610766565b50505050905090810190601f1680156107ab5780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156107c657600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600e60248201526d115e1a5d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b50505050565b606061081d8383610fa2565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561089e578181015183820152602001610886565b50505050905090810190601f1680156108cb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561092957600080fd5b8101908080516040519392919084600160201b82111561094857600080fd5b90830190602082018581111561095d57600080fd5b8251600160201b81118282018810171561097657600080fd5b82525081516020918201929091019080838360005b838110156109a357818101518382015260200161098b565b50505050905090810190601f1680156109d05780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156109eb57600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600b60248201526a135a5b9d0819985a5b195960aa1b604482015290519081900360640190fd5b6040805160018082528183019092526000918291606091829190602080830190803683370190505090508581600081518110610a6557fe5b6001600160a01b039092166020928302919091018201526040516024810182815283516044830152835160609385938392606490910191858101910280838360005b83811015610abf578181015183820152602001610aa7565b50506040805193909501838103601f1901845290945250602081018051631853304760e31b6001600160e01b039091161790529a9c60009c509950505050505050505050565b604080516001600160a01b039390931660248085019190915281518085039091018152604490930190526020820180516001600160e01b0316630ede4edd60e41b1790529160009190565b6040805160048152602481019091526020810180516001600160e01b0316632726cff560e11b1790529192909190565b6060610b8c8383610b50565b92505050836001600160a01b0316638f6f03328484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610c0c578181015183820152602001610bf4565b50505050905090810190601f168015610c395780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c5a57600080fd5b505af1158015610c6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610c9757600080fd5b8101908080516040519392919084600160201b821115610cb657600080fd5b908301906020820185811115610ccb57600080fd5b8251600160201b811182820188101715610ce457600080fd5b82525081516020918201929091019080838360005b83811015610d11578181015183820152602001610cf9565b50505050905090810190601f168015610d3e5780820380516001836020036101000a031916815260200191505b506040525050505050505050565b6060610b8c83835b6040805160048152602481019091526020810180516001600160e01b0316631249c58b60e01b1790529192909190565b6060610d908383611020565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e11578181015183820152602001610df9565b50505050905090810190601f168015610e3e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610e5f57600080fd5b505af1158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610e9c57600080fd5b8101908080516040519392919084600160201b821115610ebb57600080fd5b908301906020820185811115610ed057600080fd5b8251600160201b811182820188101715610ee957600080fd5b82525081516020918201929091019080838360005b83811015610f16578181015183820152602001610efe565b50505050905090810190601f168015610f435780820380516001836020036101000a031916815260200191505b506040525050508060200190516020811015610f5e57600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600d60248201526c14995919595b4819985a5b1959609a1b604482015290519081900360640190fd5b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663140e25ad60e31b1790529192909190565b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663852a12e360e01b1790529192909190565b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663db006a7560e01b1790529192909190565b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663073a938160e11b1790529192909190565b60606110aa8383610fe1565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561112b578181015183820152602001611113565b50505050905090810190601f1680156111585780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561117957600080fd5b505af115801561118d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156111b657600080fd5b8101908080516040519392919084600160201b8211156111d557600080fd5b9083019060208201858111156111ea57600080fd5b8251600160201b81118282018810171561120357600080fd5b82525081516020918201929091019080838360005b83811015611230578181015183820152602001611218565b50505050905090810190601f16801561125d5780820380516001836020036101000a031916815260200191505b50604052505050806020019051602081101561127857600080fd5b50511561080b576040805162461bcd60e51b815260206004820152601860248201527f52656465656d20756e6465726c79696e67206661696c65640000000000000000604482015290519081900360640190fd5b60606112d88383610a2d565b925050506060846001600160a01b0316638f6f0332846000856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561135b578181015183820152602001611343565b50505050905090810190601f1680156113885780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113a957600080fd5b505af11580156113bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156113e657600080fd5b8101908080516040519392919084600160201b82111561140557600080fd5b90830190602082018581111561141a57600080fd5b8251600160201b81118282018810171561143357600080fd5b82525081516020918201929091019080838360005b83811015611460578181015183820152602001611448565b50505050905090810190601f16801561148d5780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156114a857600080fd5b8101908080516040519392919084600160201b8211156114c757600080fd5b9083019060208201858111156114dc57600080fd5b82518660208202830111600160201b821117156114f857600080fd5b82525081516020918201928201910280838360005b8381101561152557818101518382015260200161150d565b5050505090500160405250505090508060008151811061154157fe5b602002602001015160001461158f576040805162461bcd60e51b815260206004820152600f60248201526e115b9d195c9a5b99c819985a5b1959608a1b604482015290519081900360640190fd5b5050505050565b60606115a283836105ae565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561162357818101518382015260200161160b565b50505050905090810190601f1680156116505780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561167157600080fd5b505af1158015611685573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116ae57600080fd5b8101908080516040519392919084600160201b8211156116cd57600080fd5b9083019060208201858111156116e257600080fd5b8251600160201b8111828201881017156116fb57600080fd5b82525081516020918201929091019080838360005b83811015611728578181015183820152602001611710565b50505050905090810190601f1680156117555780820380516001836020036101000a031916815260200191505b50604052505050806020019051602081101561177057600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600d60248201526c109bdc9c9bddc819985a5b1959609a1b604482015290519081900360640190fd5b60606117c0838361105f565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611841578181015183820152602001611829565b50505050905090810190601f16801561186e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188f57600080fd5b505af11580156118a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156118cc57600080fd5b8101908080516040519392919084600160201b8211156118eb57600080fd5b90830190602082018581111561190057600080fd5b8251600160201b81118282018810171561191957600080fd5b82525081516020918201929091019080838360005b8381101561194657818101518382015260200161192e565b50505050905090810190601f1680156119735780820380516001836020036101000a031916815260200191505b50604052505050806020019051602081101561198e57600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600c60248201526b14995c185e4819985a5b195960a21b604482015290519081900360640190fdfea264697066735822122032c7491ea3a968c3b0f6143c85651a14144a46c61ef8959a2388b02575b0814164736f6c634300060a0033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106101205760003560e01c8063944d008d116100ac578063a753734e1161007b578063a753734e14610474578063aed2dfc9146104a0578063b17faf1c146104e3578063beee4b4b14610528578063fa872cfa1461056b57610120565b8063944d008d146103ad5780639653f879146103f0578063a2ca57e01461041c578063a2f976581461044857610120565b80633c77439c116100f35780633c77439c146102a157806343472132146102cf5780635d202591146102fb578063690f65611461033e5780636d4aada51461038157610120565b806301fd16b21461012557806309c09c90146101e957806309c8202b146102305780632c66b57e14610273575b600080fd5b6101516004803603604081101561013b57600080fd5b506001600160a01b0381351690602001356105ae565b60405180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101ac578181015183820152602001610194565b50505050905090810190601f1680156101d95780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b8180156101f557600080fd5b5061022e6004803603606081101561020c57600080fd5b506001600160a01b0381358116916020810135821691604090910135166105ec565b005b81801561023c57600080fd5b5061022e6004803603606081101561025357600080fd5b506001600160a01b03813581169160208101359091169060400135610811565b6101516004803603604081101561028957600080fd5b506001600160a01b0381358116916020013516610a2d565b610151600480360360408110156102b757600080fd5b506001600160a01b0381358116916020013516610b05565b610151600480360360408110156102e557600080fd5b506001600160a01b038135169060200135610b50565b81801561030757600080fd5b5061022e6004803603606081101561031e57600080fd5b506001600160a01b03813581169160208101359091169060400135610b80565b81801561034a57600080fd5b5061022e6004803603606081101561036157600080fd5b506001600160a01b03813581169160208101359091169060400135610d4c565b6101516004803603604081101561039757600080fd5b506001600160a01b038135169060200135610d54565b8180156103b957600080fd5b5061022e600480360360608110156103d057600080fd5b506001600160a01b03813581169160208101359091169060400135610d84565b6101516004803603604081101561040657600080fd5b506001600160a01b038135169060200135610fa2565b6101516004803603604081101561043257600080fd5b506001600160a01b038135169060200135610fe1565b6101516004803603604081101561045e57600080fd5b506001600160a01b038135169060200135611020565b6101516004803603604081101561048a57600080fd5b506001600160a01b03813516906020013561105f565b8180156104ac57600080fd5b5061022e600480360360608110156104c357600080fd5b506001600160a01b0381358116916020810135909116906040013561109e565b8180156104ef57600080fd5b5061022e6004803603606081101561050657600080fd5b506001600160a01b0381358116916020810135821691604090910135166112cc565b81801561053457600080fd5b5061022e6004803603606081101561054b57600080fd5b506001600160a01b03813581169160208101359091169060400135611596565b81801561057757600080fd5b5061022e6004803603606081101561058e57600080fd5b506001600160a01b038135811691602081013590911690604001356117b4565b604080516024808201939093528151808203909301835260440190526020810180516001600160e01b031663317afabb60e21b179052909160009190565b60606105f88383610b05565b92505050836001600160a01b0316638f6f0332836000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610679578181015183820152602001610661565b50505050905090810190601f1680156106a65780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156106c757600080fd5b505af11580156106db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561070457600080fd5b8101908080516040519392919084600160201b82111561072357600080fd5b90830190602082018581111561073857600080fd5b8251600160201b81118282018810171561075157600080fd5b82525081516020918201929091019080838360005b8381101561077e578181015183820152602001610766565b50505050905090810190601f1680156107ab5780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156107c657600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600e60248201526d115e1a5d1a5b99c819985a5b195960921b604482015290519081900360640190fd5b50505050565b606061081d8383610fa2565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561089e578181015183820152602001610886565b50505050905090810190601f1680156108cb5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156108ec57600080fd5b505af1158015610900573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561092957600080fd5b8101908080516040519392919084600160201b82111561094857600080fd5b90830190602082018581111561095d57600080fd5b8251600160201b81118282018810171561097657600080fd5b82525081516020918201929091019080838360005b838110156109a357818101518382015260200161098b565b50505050905090810190601f1680156109d05780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156109eb57600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600b60248201526a135a5b9d0819985a5b195960aa1b604482015290519081900360640190fd5b6040805160018082528183019092526000918291606091829190602080830190803683370190505090508581600081518110610a6557fe5b6001600160a01b039092166020928302919091018201526040516024810182815283516044830152835160609385938392606490910191858101910280838360005b83811015610abf578181015183820152602001610aa7565b50506040805193909501838103601f1901845290945250602081018051631853304760e31b6001600160e01b039091161790529a9c60009c509950505050505050505050565b604080516001600160a01b039390931660248085019190915281518085039091018152604490930190526020820180516001600160e01b0316630ede4edd60e41b1790529160009190565b6040805160048152602481019091526020810180516001600160e01b0316632726cff560e11b1790529192909190565b6060610b8c8383610b50565b92505050836001600160a01b0316638f6f03328484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610c0c578181015183820152602001610bf4565b50505050905090810190601f168015610c395780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610c5a57600080fd5b505af1158015610c6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610c9757600080fd5b8101908080516040519392919084600160201b821115610cb657600080fd5b908301906020820185811115610ccb57600080fd5b8251600160201b811182820188101715610ce457600080fd5b82525081516020918201929091019080838360005b83811015610d11578181015183820152602001610cf9565b50505050905090810190601f168015610d3e5780820380516001836020036101000a031916815260200191505b506040525050505050505050565b6060610b8c83835b6040805160048152602481019091526020810180516001600160e01b0316631249c58b60e01b1790529192909190565b6060610d908383611020565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e11578181015183820152602001610df9565b50505050905090810190601f168015610e3e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610e5f57600080fd5b505af1158015610e73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610e9c57600080fd5b8101908080516040519392919084600160201b821115610ebb57600080fd5b908301906020820185811115610ed057600080fd5b8251600160201b811182820188101715610ee957600080fd5b82525081516020918201929091019080838360005b83811015610f16578181015183820152602001610efe565b50505050905090810190601f168015610f435780820380516001836020036101000a031916815260200191505b506040525050508060200190516020811015610f5e57600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600d60248201526c14995919595b4819985a5b1959609a1b604482015290519081900360640190fd5b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663140e25ad60e31b1790529192909190565b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663852a12e360e01b1790529192909190565b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663db006a7560e01b1790529192909190565b6040805160248082018490528251808303909101815260449091019091526020810180516001600160e01b031663073a938160e11b1790529192909190565b60606110aa8383610fe1565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561112b578181015183820152602001611113565b50505050905090810190601f1680156111585780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561117957600080fd5b505af115801561118d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156111b657600080fd5b8101908080516040519392919084600160201b8211156111d557600080fd5b9083019060208201858111156111ea57600080fd5b8251600160201b81118282018810171561120357600080fd5b82525081516020918201929091019080838360005b83811015611230578181015183820152602001611218565b50505050905090810190601f16801561125d5780820380516001836020036101000a031916815260200191505b50604052505050806020019051602081101561127857600080fd5b50511561080b576040805162461bcd60e51b815260206004820152601860248201527f52656465656d20756e6465726c79696e67206661696c65640000000000000000604482015290519081900360640190fd5b60606112d88383610a2d565b925050506060846001600160a01b0316638f6f0332846000856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561135b578181015183820152602001611343565b50505050905090810190601f1680156113885780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156113a957600080fd5b505af11580156113bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156113e657600080fd5b8101908080516040519392919084600160201b82111561140557600080fd5b90830190602082018581111561141a57600080fd5b8251600160201b81118282018810171561143357600080fd5b82525081516020918201929091019080838360005b83811015611460578181015183820152602001611448565b50505050905090810190601f16801561148d5780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156114a857600080fd5b8101908080516040519392919084600160201b8211156114c757600080fd5b9083019060208201858111156114dc57600080fd5b82518660208202830111600160201b821117156114f857600080fd5b82525081516020918201928201910280838360005b8381101561152557818101518382015260200161150d565b5050505090500160405250505090508060008151811061154157fe5b602002602001015160001461158f576040805162461bcd60e51b815260206004820152600f60248201526e115b9d195c9a5b99c819985a5b1959608a1b604482015290519081900360640190fd5b5050505050565b60606115a283836105ae565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561162357818101518382015260200161160b565b50505050905090810190601f1680156116505780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561167157600080fd5b505af1158015611685573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116ae57600080fd5b8101908080516040519392919084600160201b8211156116cd57600080fd5b9083019060208201858111156116e257600080fd5b8251600160201b8111828201881017156116fb57600080fd5b82525081516020918201929091019080838360005b83811015611728578181015183820152602001611710565b50505050905090810190601f1680156117555780820380516001836020036101000a031916815260200191505b50604052505050806020019051602081101561177057600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600d60248201526c109bdc9c9bddc819985a5b1959609a1b604482015290519081900360640190fd5b60606117c0838361105f565b92505050836001600160a01b0316638f6f0332846000846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611841578181015183820152602001611829565b50505050905090810190601f16801561186e5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561188f57600080fd5b505af11580156118a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156118cc57600080fd5b8101908080516040519392919084600160201b8211156118eb57600080fd5b90830190602082018581111561190057600080fd5b8251600160201b81118282018810171561191957600080fd5b82525081516020918201929091019080838360005b8381101561194657818101518382015260200161192e565b50505050905090810190601f1680156119735780820380516001836020036101000a031916815260200191505b50604052505050806020019051602081101561198e57600080fd5b50511561080b576040805162461bcd60e51b815260206004820152600c60248201526b14995c185e4819985a5b195960a21b604482015290519081900360640190fdfea264697066735822122032c7491ea3a968c3b0f6143c85651a14144a46c61ef8959a2388b02575b0814164736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
