{
  "_format": "hh-sol-artifact-1",
  "contractName": "SumCollateralsLib",
  "sourceName": "contracts/Dependencies_v0_8/SumCollateralsLib.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IVaultedgeController",
          "name": "_controller",
          "type": "IVaultedgeController"
        },
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "tokens",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            }
          ],
          "internalType": "struct CollateralAmounts",
          "name": "_firstColls",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "tokens",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            }
          ],
          "internalType": "struct CollateralAmounts",
          "name": "_secondColls",
          "type": "tuple"
        }
      ],
      "name": "subColls",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVaultedgeController",
          "name": "_controller",
          "type": "IVaultedgeController"
        },
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "tokens",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            }
          ],
          "internalType": "struct CollateralAmounts",
          "name": "_firstColls",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "tokens",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            }
          ],
          "internalType": "struct CollateralAmounts",
          "name": "_secondColls",
          "type": "tuple"
        }
      ],
      "name": "sumColls",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "tokens",
              "type": "address[]"
            },
            {
              "internalType": "uint256[]",
              "name": "amounts",
              "type": "uint256[]"
            }
          ],
          "internalType": "struct CollateralAmounts",
          "name": "finalColls",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61138661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c80635799186714610045578063fb47a0361461006e575b600080fd5b610058610053366004611075565b61008f565b60405161006591906110eb565b60405180910390f35b61008161007c366004611075565b6107f9565b604051610065929190611189565b604080518082019091526060808252602082015281515183515160008290036100bc5784925050506107f2565b806000036100ce5783925050506107f2565b60408051808201909152606080825260208201526100ec8383611223565b67ffffffffffffffff81111561010457610104610ea8565b60405190808252806020026020018201604052801561012d578160200160208202803683370190505b50815261013a8383611223565b67ffffffffffffffff81111561015257610152610ea8565b60405190808252806020026020018201604052801561017b578160200160208202803683370190505b5060208201528551604051632d79b8eb60e01b81526000918291829182916001600160a01b038d1691632d79b8eb916101b7919060040161123c565b600060405180830381865afa1580156101d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101fc919081019061127d565b8951604051632d79b8eb60e01b81529192506000916001600160a01b038e1691632d79b8eb9161022f919060040161123c565b600060405180830381865afa15801561024c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610274919081019061127d565b9050600082868151811061028a5761028a61130e565b6020026020010151905060008286815181106102a8576102a861130e565b602002602001015190505b80821015610375578c518051889081106102cf576102cf61130e565b6020026020010151886000015186815181106102ed576102ed61130e565b6001600160a01b039092166020928302919091018201528d01518051889081106103195761031961130e565b6020026020010151886020015186815181106103375761033761130e565b602090810291909101015261034b87611324565b9650888714610556578387815181106103665761036661130e565b60200260200101519150610546565b81811015610437578b518051879081106103915761039161130e565b6020026020010151886000015186815181106103af576103af61130e565b6001600160a01b039092166020928302919091018201528c01518051879081106103db576103db61130e565b6020026020010151886020015186815181106103f9576103f961130e565b602090810291909101015261040d86611324565b9550898614610556578286815181106104285761042861130e565b60200260200101519050610546565b8c5180518890811061044b5761044b61130e565b6020026020010151886000015186815181106104695761046961130e565b6001600160a01b039092166020928302919091018201528c01518051879081106104955761049561130e565b60200260200101518d6020015188815181106104b3576104b361130e565b60200260200101516104c59190611223565b886020015186815181106104db576104db61130e565b60209081029190910101526104ef87611324565b96506104fa86611324565b95508887148061050957508986145b6105565783878151811061051f5761051f61130e565b6020026020010151915082868151811061053b5761053b61130e565b602002602001015190505b61054f85611324565b94506102b3565b61055f85611324565b94505b8887101561060c578c5180518890811061057e5761057e61130e565b60200260200101518860000151868151811061059c5761059c61130e565b6001600160a01b039092166020928302919091018201528d01518051889081106105c8576105c861130e565b6020026020010151886020015186815181106105e6576105e661130e565b60209081029190910101526105fa87611324565b965061060585611324565b9450610562565b898610156106b6578b518051879081106106285761062861130e565b6020026020010151886000015186815181106106465761064661130e565b6001600160a01b039092166020928302919091018201528c01518051879081106106725761067261130e565b6020026020010151886020015186815181106106905761069061130e565b60209081029190910101526106a486611324565b95506106af85611324565b945061060c565b60008567ffffffffffffffff8111156106d1576106d1610ea8565b6040519080825280602002602001820160405280156106fa578160200160208202803683370190505b50905060008667ffffffffffffffff81111561071857610718610ea8565b604051908082528060200260200182016040528015610741578160200160208202803683370190505b50905060005b878110156107de578a518051829081106107635761076361130e565b602002602001015183828151811061077d5761077d61130e565b6001600160a01b039092166020928302919091018201528b01518051829081106107a9576107a961130e565b60200260200101518282815181106107c3576107c361130e565b60209081029190910101526107d781611324565b9050610747565b50908c5260208c0152505050505050505050505b9392505050565b60608082600001515160000361081757505081516020830151610e88565b83515160408051808201909152606080825260208201528167ffffffffffffffff81111561084757610847610ea8565b604051908082528060200260200182016040528015610870578160200160208202803683370190505b5081528167ffffffffffffffff81111561088c5761088c610ea8565b6040519080825280602002602001820160405280156108b5578160200160208202803683370190505b5060208201528551604051632d79b8eb60e01b81526000916001600160a01b038a1691632d79b8eb916108ea9160040161123c565b600060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092f919081019061127d565b8651604051632d79b8eb60e01b81529192506000916001600160a01b038b1691632d79b8eb91610962919060040161123c565b600060405180830381865afa15801561097f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109a7919081019061127d565b90506000806000808483815181106109c1576109c161130e565b602002602001015190505b87841015610c285760008685815181106109e8576109e861130e565b6020026020010151905080821015610a515760405162461bcd60e51b815260206004820152602160248201527f737562436f6c6c733a20436f6c6c61746572616c496e6465784d69736d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b818103610b82578b602001518481518110610a6e57610a6e61130e565b60200260200101518d602001518681518110610a8c57610a8c61130e565b6020026020010151610a9e919061133d565b88602001518481518110610ab457610ab461130e565b60200260200101818152505087602001518381518110610ad657610ad661130e565b6020026020010151600014610b3b578c51805186908110610af957610af961130e565b602002602001015188600001518481518110610b1757610b1761130e565b6001600160a01b0390921660209283029190910190910152610b3883611324565b92505b610b4484611324565b8c51519094508403610b6157610b5985611324565b945050610c28565b858481518110610b7357610b7361130e565b60200260200101519150610c17565b8c602001518581518110610b9857610b9861130e565b602002602001015188602001518481518110610bb657610bb661130e565b60209081029190910101528c51805186908110610bd557610bd561130e565b602002602001015188600001518481518110610bf357610bf361130e565b6001600160a01b0390921660209283029190910190910152610c1483611324565b92505b50610c2184611324565b93506109cc565b87841015610cd2578b51805185908110610c4457610c4461130e565b602002602001015187600001518381518110610c6257610c6261130e565b6001600160a01b039092166020928302919091018201528c0151805185908110610c8e57610c8e61130e565b602002602001015187602001518381518110610cac57610cac61130e565b6020908102919091010152610cc084611324565b9350610ccb82611324565b9150610c28565b8a51518314610d2d5760405162461bcd60e51b815260206004820152602160248201527f737562436f6c6c733a20436f6c6c61746572616c496e6465784d69736d6174636044820152600d60fb1b6064820152608401610a48565b60408051808201909152606080825260208201528267ffffffffffffffff811115610d5a57610d5a610ea8565b604051908082528060200260200182016040528015610d83578160200160208202803683370190505b5081528267ffffffffffffffff811115610d9f57610d9f610ea8565b604051908082528060200260200182016040528015610dc8578160200160208202803683370190505b506020820152600094505b82851015610e72578751805186908110610def57610def61130e565b602002602001015181600001518681518110610e0d57610e0d61130e565b6001600160a01b03909216602092830291909101820152880151805186908110610e3957610e3961130e565b602002602001015181602001518681518110610e5757610e5761130e565b6020908102919091010152610e6b85611324565b9450610dd3565b8051602090910151909a50985050505050505050505b935093915050565b6001600160a01b0381168114610ea557600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610ee157610ee1610ea8565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610f1057610f10610ea8565b604052919050565b600067ffffffffffffffff821115610f3257610f32610ea8565b5060051b60200190565b600082601f830112610f4d57600080fd5b81356020610f62610f5d83610f18565b610ee7565b82815260059290921b84018101918181019086841115610f8157600080fd5b8286015b84811015610f9c5780358352918301918301610f85565b509695505050505050565b600060408284031215610fb957600080fd5b610fc1610ebe565b9050813567ffffffffffffffff80821115610fdb57600080fd5b818401915084601f830112610fef57600080fd5b81356020610fff610f5d83610f18565b82815260059290921b8401810191818101908884111561101e57600080fd5b948201945b8386101561104557853561103681610e90565b82529482019490820190611023565b8652508581013593508284111561105b57600080fd5b61106787858801610f3c565b818601525050505092915050565b60008060006060848603121561108a57600080fd5b833561109581610e90565b9250602084013567ffffffffffffffff808211156110b257600080fd5b6110be87838801610fa7565b935060408601359150808211156110d457600080fd5b506110e186828701610fa7565b9150509250925092565b6020808252825160408383015280516060840181905260009291820190839060808601905b808310156111395783516001600160a01b03168252928401926001929092019190840190611110565b5086840151868203601f190160408801528051808352908501935090840191506000905b8082101561117d578351835292840192918401916001919091019061115d565b50909695505050505050565b604080825283519082018190526000906020906060840190828701845b828110156111cb5781516001600160a01b0316845292840192908401906001016111a6565b5050508381038285015284518082528583019183019060005b81811015611200578351835292840192918401916001016111e4565b5090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156112365761123661120d565b92915050565b6020808252825182820181905260009190848201906040850190845b8181101561117d5783516001600160a01b031683529284019291840191600101611258565b6000602080838503121561129057600080fd5b825167ffffffffffffffff8111156112a757600080fd5b8301601f810185136112b857600080fd5b80516112c6610f5d82610f18565b81815260059190911b820183019083810190878311156112e557600080fd5b928401925b82841015611303578351825292840192908401906112ea565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016113365761133661120d565b5060010190565b818103818111156112365761123661120d56fea2646970667358221220374f86fc06d3edce5ed8821b3e3b898d733b5ed18b0b3a60b56db675545058f464736f6c63430008130033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c80635799186714610045578063fb47a0361461006e575b600080fd5b610058610053366004611075565b61008f565b60405161006591906110eb565b60405180910390f35b61008161007c366004611075565b6107f9565b604051610065929190611189565b604080518082019091526060808252602082015281515183515160008290036100bc5784925050506107f2565b806000036100ce5783925050506107f2565b60408051808201909152606080825260208201526100ec8383611223565b67ffffffffffffffff81111561010457610104610ea8565b60405190808252806020026020018201604052801561012d578160200160208202803683370190505b50815261013a8383611223565b67ffffffffffffffff81111561015257610152610ea8565b60405190808252806020026020018201604052801561017b578160200160208202803683370190505b5060208201528551604051632d79b8eb60e01b81526000918291829182916001600160a01b038d1691632d79b8eb916101b7919060040161123c565b600060405180830381865afa1580156101d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101fc919081019061127d565b8951604051632d79b8eb60e01b81529192506000916001600160a01b038e1691632d79b8eb9161022f919060040161123c565b600060405180830381865afa15801561024c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610274919081019061127d565b9050600082868151811061028a5761028a61130e565b6020026020010151905060008286815181106102a8576102a861130e565b602002602001015190505b80821015610375578c518051889081106102cf576102cf61130e565b6020026020010151886000015186815181106102ed576102ed61130e565b6001600160a01b039092166020928302919091018201528d01518051889081106103195761031961130e565b6020026020010151886020015186815181106103375761033761130e565b602090810291909101015261034b87611324565b9650888714610556578387815181106103665761036661130e565b60200260200101519150610546565b81811015610437578b518051879081106103915761039161130e565b6020026020010151886000015186815181106103af576103af61130e565b6001600160a01b039092166020928302919091018201528c01518051879081106103db576103db61130e565b6020026020010151886020015186815181106103f9576103f961130e565b602090810291909101015261040d86611324565b9550898614610556578286815181106104285761042861130e565b60200260200101519050610546565b8c5180518890811061044b5761044b61130e565b6020026020010151886000015186815181106104695761046961130e565b6001600160a01b039092166020928302919091018201528c01518051879081106104955761049561130e565b60200260200101518d6020015188815181106104b3576104b361130e565b60200260200101516104c59190611223565b886020015186815181106104db576104db61130e565b60209081029190910101526104ef87611324565b96506104fa86611324565b95508887148061050957508986145b6105565783878151811061051f5761051f61130e565b6020026020010151915082868151811061053b5761053b61130e565b602002602001015190505b61054f85611324565b94506102b3565b61055f85611324565b94505b8887101561060c578c5180518890811061057e5761057e61130e565b60200260200101518860000151868151811061059c5761059c61130e565b6001600160a01b039092166020928302919091018201528d01518051889081106105c8576105c861130e565b6020026020010151886020015186815181106105e6576105e661130e565b60209081029190910101526105fa87611324565b965061060585611324565b9450610562565b898610156106b6578b518051879081106106285761062861130e565b6020026020010151886000015186815181106106465761064661130e565b6001600160a01b039092166020928302919091018201528c01518051879081106106725761067261130e565b6020026020010151886020015186815181106106905761069061130e565b60209081029190910101526106a486611324565b95506106af85611324565b945061060c565b60008567ffffffffffffffff8111156106d1576106d1610ea8565b6040519080825280602002602001820160405280156106fa578160200160208202803683370190505b50905060008667ffffffffffffffff81111561071857610718610ea8565b604051908082528060200260200182016040528015610741578160200160208202803683370190505b50905060005b878110156107de578a518051829081106107635761076361130e565b602002602001015183828151811061077d5761077d61130e565b6001600160a01b039092166020928302919091018201528b01518051829081106107a9576107a961130e565b60200260200101518282815181106107c3576107c361130e565b60209081029190910101526107d781611324565b9050610747565b50908c5260208c0152505050505050505050505b9392505050565b60608082600001515160000361081757505081516020830151610e88565b83515160408051808201909152606080825260208201528167ffffffffffffffff81111561084757610847610ea8565b604051908082528060200260200182016040528015610870578160200160208202803683370190505b5081528167ffffffffffffffff81111561088c5761088c610ea8565b6040519080825280602002602001820160405280156108b5578160200160208202803683370190505b5060208201528551604051632d79b8eb60e01b81526000916001600160a01b038a1691632d79b8eb916108ea9160040161123c565b600060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092f919081019061127d565b8651604051632d79b8eb60e01b81529192506000916001600160a01b038b1691632d79b8eb91610962919060040161123c565b600060405180830381865afa15801561097f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109a7919081019061127d565b90506000806000808483815181106109c1576109c161130e565b602002602001015190505b87841015610c285760008685815181106109e8576109e861130e565b6020026020010151905080821015610a515760405162461bcd60e51b815260206004820152602160248201527f737562436f6c6c733a20436f6c6c61746572616c496e6465784d69736d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b818103610b82578b602001518481518110610a6e57610a6e61130e565b60200260200101518d602001518681518110610a8c57610a8c61130e565b6020026020010151610a9e919061133d565b88602001518481518110610ab457610ab461130e565b60200260200101818152505087602001518381518110610ad657610ad661130e565b6020026020010151600014610b3b578c51805186908110610af957610af961130e565b602002602001015188600001518481518110610b1757610b1761130e565b6001600160a01b0390921660209283029190910190910152610b3883611324565b92505b610b4484611324565b8c51519094508403610b6157610b5985611324565b945050610c28565b858481518110610b7357610b7361130e565b60200260200101519150610c17565b8c602001518581518110610b9857610b9861130e565b602002602001015188602001518481518110610bb657610bb661130e565b60209081029190910101528c51805186908110610bd557610bd561130e565b602002602001015188600001518481518110610bf357610bf361130e565b6001600160a01b0390921660209283029190910190910152610c1483611324565b92505b50610c2184611324565b93506109cc565b87841015610cd2578b51805185908110610c4457610c4461130e565b602002602001015187600001518381518110610c6257610c6261130e565b6001600160a01b039092166020928302919091018201528c0151805185908110610c8e57610c8e61130e565b602002602001015187602001518381518110610cac57610cac61130e565b6020908102919091010152610cc084611324565b9350610ccb82611324565b9150610c28565b8a51518314610d2d5760405162461bcd60e51b815260206004820152602160248201527f737562436f6c6c733a20436f6c6c61746572616c496e6465784d69736d6174636044820152600d60fb1b6064820152608401610a48565b60408051808201909152606080825260208201528267ffffffffffffffff811115610d5a57610d5a610ea8565b604051908082528060200260200182016040528015610d83578160200160208202803683370190505b5081528267ffffffffffffffff811115610d9f57610d9f610ea8565b604051908082528060200260200182016040528015610dc8578160200160208202803683370190505b506020820152600094505b82851015610e72578751805186908110610def57610def61130e565b602002602001015181600001518681518110610e0d57610e0d61130e565b6001600160a01b03909216602092830291909101820152880151805186908110610e3957610e3961130e565b602002602001015181602001518681518110610e5757610e5761130e565b6020908102919091010152610e6b85611324565b9450610dd3565b8051602090910151909a50985050505050505050505b935093915050565b6001600160a01b0381168114610ea557600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610ee157610ee1610ea8565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610f1057610f10610ea8565b604052919050565b600067ffffffffffffffff821115610f3257610f32610ea8565b5060051b60200190565b600082601f830112610f4d57600080fd5b81356020610f62610f5d83610f18565b610ee7565b82815260059290921b84018101918181019086841115610f8157600080fd5b8286015b84811015610f9c5780358352918301918301610f85565b509695505050505050565b600060408284031215610fb957600080fd5b610fc1610ebe565b9050813567ffffffffffffffff80821115610fdb57600080fd5b818401915084601f830112610fef57600080fd5b81356020610fff610f5d83610f18565b82815260059290921b8401810191818101908884111561101e57600080fd5b948201945b8386101561104557853561103681610e90565b82529482019490820190611023565b8652508581013593508284111561105b57600080fd5b61106787858801610f3c565b818601525050505092915050565b60008060006060848603121561108a57600080fd5b833561109581610e90565b9250602084013567ffffffffffffffff808211156110b257600080fd5b6110be87838801610fa7565b935060408601359150808211156110d457600080fd5b506110e186828701610fa7565b9150509250925092565b6020808252825160408383015280516060840181905260009291820190839060808601905b808310156111395783516001600160a01b03168252928401926001929092019190840190611110565b5086840151868203601f190160408801528051808352908501935090840191506000905b8082101561117d578351835292840192918401916001919091019061115d565b50909695505050505050565b604080825283519082018190526000906020906060840190828701845b828110156111cb5781516001600160a01b0316845292840192908401906001016111a6565b5050508381038285015284518082528583019183019060005b81811015611200578351835292840192918401916001016111e4565b5090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156112365761123661120d565b92915050565b6020808252825182820181905260009190848201906040850190845b8181101561117d5783516001600160a01b031683529284019291840191600101611258565b6000602080838503121561129057600080fd5b825167ffffffffffffffff8111156112a757600080fd5b8301601f810185136112b857600080fd5b80516112c6610f5d82610f18565b81815260059190911b820183019083810190878311156112e557600080fd5b928401925b82841015611303578351825292840192908401906112ea565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016113365761133661120d565b5060010190565b818103818111156112365761123661120d56fea2646970667358221220374f86fc06d3edce5ed8821b3e3b898d733b5ed18b0b3a60b56db675545058f464736f6c63430008130033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
