diff --git a/jest.config.cjs b/jest.config.cjs index 648cd0a..875ab81 100644 --- a/jest.config.cjs +++ b/jest.config.cjs @@ -2,6 +2,7 @@ module.exports = { preset: "ts-jest", testEnvironment: "node", + maxWorkers: 1, collectCoverage: true, collectCoverageFrom: ["src/**/*.{ts,tsx}"], coverageDirectory: "coverage", diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0b47cce --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6243 @@ +{ + "name": "@sizecredit/sdk", + "version": "0.2.10", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@sizecredit/sdk", + "version": "0.2.10", + "license": "MIT", + "dependencies": { + "ethers": "^5.8.0", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@jest/globals": "^29.7.0", + "@rollup/plugin-commonjs": "^25.0.8", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.3.1", + "@rollup/plugin-typescript": "^11.1.6", + "@typechain/ethers-v5": "^11.1.2", + "@types/jest": "^29.5.12", + "@types/jsdom": "^21.1.7", + "jest": "^29.7.0", + "jsdom": "^21.1.0", + "prettier": "^3.5.3", + "rollup": "^4.9.1", + "rollup-plugin-dts": "^6.2.1", + "ts-jest": "^29.1.2", + "typechain": "^8.3.2", + "typescript": "^4.9.5" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@ethersproject/abi": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz", + "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz", + "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/networks": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/web": "^5.8.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz", + "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz", + "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/rlp": "^5.8.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz", + "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz", + "integrity": "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/properties": "^5.8.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz", + "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz", + "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz", + "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.8.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz", + "integrity": "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "^5.8.0", + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/transactions": "^5.8.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz", + "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/base64": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz", + "integrity": "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/basex": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/pbkdf2": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/sha2": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/wordlists": "^5.8.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz", + "integrity": "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hdnode": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/pbkdf2": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz", + "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz", + "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz", + "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz", + "integrity": "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/sha2": "^5.8.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz", + "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz", + "integrity": "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/base64": "^5.8.0", + "@ethersproject/basex": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/networks": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/rlp": "^5.8.0", + "@ethersproject/sha2": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/web": "^5.8.0", + "bech32": "1.1.4", + "ws": "8.18.0" + } + }, + "node_modules/@ethersproject/random": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz", + "integrity": "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz", + "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz", + "integrity": "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz", + "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "bn.js": "^5.2.1", + "elliptic": "6.6.1", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz", + "integrity": "sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/sha2": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz", + "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz", + "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/rlp": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz", + "integrity": "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz", + "integrity": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/hdnode": "^5.8.0", + "@ethersproject/json-wallets": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/wordlists": "^5.8.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz", + "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz", + "integrity": "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "25.0.8", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.8.tgz", + "integrity": "sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", + "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", + "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", + "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", + "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", + "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", + "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", + "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", + "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", + "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", + "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", + "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", + "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", + "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", + "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", + "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", + "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", + "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", + "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", + "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", + "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", + "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", + "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", + "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@typechain/ethers-v5": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-11.1.2.tgz", + "integrity": "sha512-ID6pqWkao54EuUQa0P5RgjvfA3MYqxUQKpbGKERbsjBW5Ra7EIXvbMlPp2pcP5IAdUkyMCFYsP2SN5q7mPdLDQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "@ethersproject/abi": "^5.0.0", + "@ethersproject/providers": "^5.0.0", + "ethers": "^5.1.3", + "typechain": "^8.3.2", + "typescript": ">=4.3.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jsdom": { + "version": "21.1.7", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz", + "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/node": { + "version": "24.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz", + "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==", + "dev": true, + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.19.tgz", + "integrity": "sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ==", + "dev": true, + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/bn.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==" + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browserslist": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/command-line-usage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/command-line-usage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/command-line-usage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/data-urls": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true + }, + "node_modules/dedent": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.238", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.238.tgz", + "integrity": "sha512-khBdc+w/Gv+cS8e/Pbnaw/FXcBUeKrRVik9IxfXtgREOWyJhR4tj43n3amkVogJ/yeQUqzkrZcFhtIxIdqmmcQ==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ethers": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz", + "integrity": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "5.8.0", + "@ethersproject/abstract-provider": "5.8.0", + "@ethersproject/abstract-signer": "5.8.0", + "@ethersproject/address": "5.8.0", + "@ethersproject/base64": "5.8.0", + "@ethersproject/basex": "5.8.0", + "@ethersproject/bignumber": "5.8.0", + "@ethersproject/bytes": "5.8.0", + "@ethersproject/constants": "5.8.0", + "@ethersproject/contracts": "5.8.0", + "@ethersproject/hash": "5.8.0", + "@ethersproject/hdnode": "5.8.0", + "@ethersproject/json-wallets": "5.8.0", + "@ethersproject/keccak256": "5.8.0", + "@ethersproject/logger": "5.8.0", + "@ethersproject/networks": "5.8.0", + "@ethersproject/pbkdf2": "5.8.0", + "@ethersproject/properties": "5.8.0", + "@ethersproject/providers": "5.8.0", + "@ethersproject/random": "5.8.0", + "@ethersproject/rlp": "5.8.0", + "@ethersproject/sha2": "5.8.0", + "@ethersproject/signing-key": "5.8.0", + "@ethersproject/solidity": "5.8.0", + "@ethersproject/strings": "5.8.0", + "@ethersproject/transactions": "5.8.0", + "@ethersproject/units": "5.8.0", + "@ethersproject/wallet": "5.8.0", + "@ethersproject/web": "5.8.0", + "@ethersproject/wordlists": "5.8.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "21.1.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.2.tgz", + "integrity": "sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.2", + "acorn-globals": "^7.0.0", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", + "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.22", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz", + "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/rollup": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", + "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.52.5", + "@rollup/rollup-android-arm64": "4.52.5", + "@rollup/rollup-darwin-arm64": "4.52.5", + "@rollup/rollup-darwin-x64": "4.52.5", + "@rollup/rollup-freebsd-arm64": "4.52.5", + "@rollup/rollup-freebsd-x64": "4.52.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", + "@rollup/rollup-linux-arm-musleabihf": "4.52.5", + "@rollup/rollup-linux-arm64-gnu": "4.52.5", + "@rollup/rollup-linux-arm64-musl": "4.52.5", + "@rollup/rollup-linux-loong64-gnu": "4.52.5", + "@rollup/rollup-linux-ppc64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-musl": "4.52.5", + "@rollup/rollup-linux-s390x-gnu": "4.52.5", + "@rollup/rollup-linux-x64-gnu": "4.52.5", + "@rollup/rollup-linux-x64-musl": "4.52.5", + "@rollup/rollup-openharmony-arm64": "4.52.5", + "@rollup/rollup-win32-arm64-msvc": "4.52.5", + "@rollup/rollup-win32-ia32-msvc": "4.52.5", + "@rollup/rollup-win32-x64-gnu": "4.52.5", + "@rollup/rollup-win32-x64-msvc": "4.52.5", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-dts": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.2.3.tgz", + "integrity": "sha512-UgnEsfciXSPpASuOelix7m4DrmyQgiaWBnvI0TM4GxuDh5FkqW8E5hu57bCxXB90VvR1WNfLV80yEDN18UogSA==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.17" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/Swatinem" + }, + "optionalDependencies": { + "@babel/code-frame": "^7.27.1" + }, + "peerDependencies": { + "rollup": "^3.29.4 || ^4", + "typescript": "^4.5 || ^5.0" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "dev": true + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "dev": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/ts-jest": { + "version": "29.4.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz", + "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==", + "dev": true, + "dependencies": { + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.3", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "dev": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 14c2439..30e2193 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.3.1", "@rollup/plugin-typescript": "^11.1.6", + "@typechain/ethers-v5": "^11.1.2", "@types/jest": "^29.5.12", "@types/jsdom": "^21.1.7", "jest": "^29.7.0", @@ -72,6 +73,7 @@ "rollup": "^4.9.1", "rollup-plugin-dts": "^6.2.1", "ts-jest": "^29.1.2", + "typechain": "^8.3.2", "typescript": "^4.9.5" } } diff --git a/src/decoder/error.ts b/src/decoder/error.ts index ff163ec..dcc9611 100644 --- a/src/decoder/error.ts +++ b/src/decoder/error.ts @@ -3,6 +3,9 @@ import ErrorsV1_8 from "../v1.8/abi/Errors.json"; import ErrorsV1_7 from "../v1.7/abi/Errors.json"; import CollectionsManagerV1_8 from "../v1.8/abi/CollectionsManager.json"; import IERC20Errors from "../erc20/abi/IERC20Errors.json"; +import IERC20ErrorsV1_8 from "../v1.8/abi/IERC20Errors.json"; +import IERC721ErrorsV1_8 from "../v1.8/abi/IERC721Errors.json"; +import IERC1155ErrorsV1_8 from "../v1.8/abi/IERC1155Errors.json"; import selector from "../helpers/selector"; export class ErrorDecoder { @@ -15,6 +18,9 @@ export class ErrorDecoder { ...ErrorsV1_7.abi, ...CollectionsManagerV1_8.abi, ...IERC20Errors.abi, + ...IERC20ErrorsV1_8.abi, + ...IERC721ErrorsV1_8.abi, + ...IERC1155ErrorsV1_8.abi, ]; const deduped = abi .filter((abiItem) => abiItem.type === "error") diff --git a/src/v1.8/abi/CollectionsManager.json b/src/v1.8/abi/CollectionsManager.json index 1b4a0b9..2fb73bb 100644 --- a/src/v1.8/abi/CollectionsManager.json +++ b/src/v1.8/abi/CollectionsManager.json @@ -131,84 +131,6 @@ ], "stateMutability": "view" }, - { - "type": "function", - "name": "getCollectionMarketCopyBorrowOfferConfig", - "inputs": [ - { - "name": "collectionId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "market", - "type": "address", - "internalType": "contract ISize" - } - ], - "outputs": [ - { - "name": "copyLimitOrder", - "type": "tuple", - "internalType": "struct CopyLimitOrderConfig", - "components": [ - { - "name": "minTenor", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maxTenor", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "offsetAPR", "type": "int256", "internalType": "int256" } - ] - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getCollectionMarketCopyLoanOfferConfig", - "inputs": [ - { - "name": "collectionId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "market", - "type": "address", - "internalType": "contract ISize" - } - ], - "outputs": [ - { - "name": "copyLimitOrder", - "type": "tuple", - "internalType": "struct CopyLimitOrderConfig", - "components": [ - { - "name": "minTenor", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maxTenor", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "offsetAPR", "type": "int256", "internalType": "int256" } - ] - } - ], - "stateMutability": "view" - }, { "type": "function", "name": "getCollectionMarketRateProviders", @@ -503,22 +425,18 @@ }, { "type": "function", - "name": "setCollectionMarketConfigs", + "name": "setUserCollectionCopyLimitOrderConfigs", "inputs": [ + { "name": "user", "type": "address", "internalType": "address" }, { "name": "collectionId", "type": "uint256", "internalType": "uint256" }, { - "name": "markets", - "type": "address[]", - "internalType": "contract ISize[]" - }, - { - "name": "copyLoanOfferConfigs", - "type": "tuple[]", - "internalType": "struct CopyLimitOrderConfig[]", + "name": "copyLoanOfferConfig", + "type": "tuple", + "internalType": "struct CopyLimitOrderConfig", "components": [ { "name": "minTenor", @@ -536,9 +454,9 @@ ] }, { - "name": "copyBorrowOfferConfigs", - "type": "tuple[]", - "internalType": "struct CopyLimitOrderConfig[]", + "name": "copyBorrowOfferConfig", + "type": "tuple", + "internalType": "struct CopyLimitOrderConfig", "components": [ { "name": "minTenor", @@ -663,92 +581,6 @@ "outputs": [], "stateMutability": "payable" }, - { - "type": "event", - "name": "AddMarketToCollection", - "inputs": [ - { - "name": "collectionId", - "type": "uint256", - "indexed": true, - "internalType": "uint256" - }, - { - "name": "market", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "copyLoanOfferConfig", - "type": "tuple", - "indexed": false, - "internalType": "struct CopyLimitOrderConfig", - "components": [ - { - "name": "minTenor", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maxTenor", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "offsetAPR", "type": "int256", "internalType": "int256" } - ] - }, - { - "name": "copyBorrowOfferConfig", - "type": "tuple", - "indexed": false, - "internalType": "struct CopyLimitOrderConfig", - "components": [ - { - "name": "minTenor", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maxTenor", - "type": "uint256", - "internalType": "uint256" - }, - { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "offsetAPR", "type": "int256", "internalType": "int256" } - ] - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "AddRateProviderToMarket", - "inputs": [ - { - "name": "collectionId", - "type": "uint256", - "indexed": true, - "internalType": "uint256" - }, - { - "name": "market", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "rateProvider", - "type": "address", - "indexed": true, - "internalType": "address" - } - ], - "anonymous": false - }, { "type": "event", "name": "Approval", @@ -814,7 +646,26 @@ }, { "type": "event", - "name": "RemoveMarketFromCollection", + "name": "MarketAddedToCollection", + "inputs": [ + { + "name": "collectionId", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "market", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "MarketRemovedFromCollection", "inputs": [ { "name": "collectionId", @@ -833,7 +684,7 @@ }, { "type": "event", - "name": "RemoveRateProviderFromMarket", + "name": "RateProviderAddedToMarket", "inputs": [ { "name": "collectionId", @@ -856,6 +707,92 @@ ], "anonymous": false }, + { + "type": "event", + "name": "RateProviderRemovedFromMarket", + "inputs": [ + { + "name": "collectionId", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "market", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "rateProvider", + "type": "address", + "indexed": true, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SetUserCollectionCopyLimitOrderConfigs", + "inputs": [ + { + "name": "user", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "collectionId", + "type": "uint256", + "indexed": true, + "internalType": "uint256" + }, + { + "name": "copyLoanOfferConfig", + "type": "tuple", + "indexed": false, + "internalType": "struct CopyLimitOrderConfig", + "components": [ + { + "name": "minTenor", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxTenor", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "offsetAPR", "type": "int256", "internalType": "int256" } + ] + }, + { + "name": "copyBorrowOfferConfig", + "type": "tuple", + "indexed": false, + "internalType": "struct CopyLimitOrderConfig", + "components": [ + { + "name": "minTenor", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxTenor", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "offsetAPR", "type": "int256", "internalType": "int256" } + ] + } + ], + "anonymous": false + }, { "type": "event", "name": "SubscribedToCollection", @@ -932,7 +869,6 @@ ], "anonymous": false }, - { "type": "error", "name": "ARRAY_LENGTHS_MISMATCH", "inputs": [] }, { "type": "error", "name": "AccessControlUnauthorizedAccount", @@ -1033,14 +969,6 @@ ] }, { "type": "error", "name": "FailedCall", "inputs": [] }, - { - "type": "error", - "name": "INVALID_APR_RANGE", - "inputs": [ - { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, - { "name": "maxAPR", "type": "uint256", "internalType": "uint256" } - ] - }, { "type": "error", "name": "INVALID_MARKET", @@ -1048,14 +976,6 @@ { "name": "market", "type": "address", "internalType": "address" } ] }, - { - "type": "error", - "name": "INVALID_TENOR_RANGE", - "inputs": [ - { "name": "minTenor", "type": "uint256", "internalType": "uint256" }, - { "name": "maxTenor", "type": "uint256", "internalType": "uint256" } - ] - }, { "type": "error", "name": "InvalidCollectionId", @@ -1106,6 +1026,13 @@ { "name": "user", "type": "address", "internalType": "address" } ] }, + { + "type": "error", + "name": "PAUSED_MARKET", + "inputs": [ + { "name": "market", "type": "address", "internalType": "address" } + ] + }, { "type": "error", "name": "SafeCastOverflowedIntToUint", @@ -1130,19 +1057,19 @@ } ], "bytecode": { - "object": "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051614490620001005f395f81816121c4015281816121ed01526123bd01526144905ff3fe608060405260043610610249575f3560e01c806370a0823111610134578063ac9650d8116100b3578063c4d66de811610078578063c4d66de8146106f2578063c87b56dd14610711578063dd2bc30214610730578063de1eb8801461075c578063e985e9c51461077b578063eb379a581461079a575f80fd5b8063ac9650d81461062c578063ad3cb1cc14610658578063b88d4fde14610688578063b9d33d1e146106a7578063c260d206146106d3575f80fd5b80639feffdb0116100f95780639feffdb014610591578063a0529e5f146105b0578063a22cb465146105cf578063abff1222146105ee578063ac888c071461060d575f80fd5b806370a08231146105015780638134a9e01461052057806393c0d3f31461053f57806395d89b411461055e5780639c71db1e14610572575f80fd5b806342842e0e116101cb57806352d1902d1161019057806352d1902d1461045b578063565380571461046f5780635fb7f10c146104905780636352211e146104af578063647f1a9c146104ce578063678b9bad146104e2575f80fd5b806342842e0e146103bf578063495e6d89146103de57806349b6d14f146103fd5780634f1ef286146104295780634f6ccce71461043c575f80fd5b806315d5cf991161021157806315d5cf991461031957806318160ddd1461033857806320d634561461036257806323b872dd146103815780632f745c59146103a0575f80fd5b806301ffc9a71461024d57806306fdde0314610281578063081812fc146102a2578063095ea7b3146102d95780630b379508146102fa575b5f80fd5b348015610258575f80fd5b5061026c610267366004613627565b6107b9565b60405190151581526020015b60405180910390f35b34801561028c575f80fd5b506102956107e3565b604051610278919061368f565b3480156102ad575f80fd5b506102c16102bc3660046136a1565b610884565b6040516001600160a01b039091168152602001610278565b3480156102e4575f80fd5b506102f86102f33660046136cc565b610898565b005b348015610305575f80fd5b506102f8610314366004613784565b6108a7565b348015610324575f80fd5b506102f861033336600461394d565b6109d3565b348015610343575f80fd5b505f8051602061443b833981519152545b604051908152602001610278565b34801561036d575f80fd5b5061026c61037c3660046136cc565b610f5a565b34801561038c575f80fd5b506102f861039b3660046139d8565b610f82565b3480156103ab575f80fd5b506103546103ba3660046136cc565b61100b565b3480156103ca575f80fd5b506102f86103d93660046139d8565b61107c565b3480156103e9575f80fd5b506103546103f8366004613a16565b61109b565b348015610408575f80fd5b5061041c610417366004613a6d565b6110b6565b6040516102789190613a9b565b6102f8610437366004613b3f565b6110ca565b348015610447575f80fd5b506103546104563660046136a1565b6110e5565b348015610466575f80fd5b50610354611157565b34801561047a575f80fd5b5061026c6104893660046136a1565b6001541190565b34801561049b575f80fd5b506103546104aa366004613a16565b611173565b3480156104ba575f80fd5b506102c16104c93660046136a1565b611183565b3480156104d9575f80fd5b5061035461118d565b3480156104ed575f80fd5b5061026c6104fc366004613b8b565b6111ad565b34801561050c575f80fd5b5061035461051b366004613bd0565b6111c6565b34801561052b575f80fd5b5061026c61053a366004613a6d565b61121e565b34801561054a575f80fd5b506102f8610559366004613beb565b611260565b348015610569575f80fd5b506102956113a6565b34801561057d575f80fd5b5061041c61058c366004613a6d565b6113e4565b34801561059c575f80fd5b5061026c6105ab366004613b8b565b6113f7565b3480156105bb575f80fd5b506102f86105ca366004613c8b565b611406565b3480156105da575f80fd5b506102f86105e9366004613cd1565b6114c2565b3480156105f9575f80fd5b506102f8610608366004613c8b565b6114cd565b348015610618575f80fd5b5061026c610627366004613cfd565b611669565b348015610637575f80fd5b5061064b610646366004613d4d565b61170a565b6040516102789190613dbb565b348015610663575f80fd5b50610295604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610693575f80fd5b506102f86106a2366004613e1d565b6117ef565b3480156106b2575f80fd5b506106c66106c1366004613bd0565b611807565b6040516102789190613e78565b3480156106de575f80fd5b506103546106ed366004613ebb565b61182a565b3480156106fd575f80fd5b506102f861070c366004613bd0565b61194a565b34801561071c575f80fd5b5061029561072b3660046136a1565b611ac3565b34801561073b575f80fd5b5061074f61074a366004613a6d565b611b27565b6040516102789190613f27565b348015610767575f80fd5b506102f8610776366004613beb565b611bd5565b348015610786575f80fd5b5061026c610795366004613f67565b611ce8565b3480156107a5575f80fd5b506102f86107b4366004613784565b611d34565b5f6001600160e01b0319821663780e9d6360e01b14806107dd57506107dd82611e4d565b92915050565b5f805160206143fb833981519152805460609190819061080290613f93565b80601f016020809104026020016040519081016040528092919081815260200182805461082e90613f93565b80156108795780601f1061085057610100808354040283529160200191610879565b820191905f5260205f20905b81548152906001019060200180831161085c57829003601f168201915b505050505091505090565b5f61088e82611e9c565b506107dd82611ed3565b6108a3828233611f0c565b5050565b826108bb6108b482611183565b3383611f19565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff1661091457604051631713bf1160e21b8152600481018590526001600160a01b03841660248201526044015b60405180910390fd5b5f5b82518110156109cc5761096983828151811061093457610934613fcb565b6020908102919091018101515f8881526002835260408082206001600160a01b038a16835290935291909120600b0190611f7d565b5082818151811061097c5761097c613fcb565b60200260200101516001600160a01b0316846001600160a01b0316867f1360c7b25382a6f295161363858560fa84e4d0ebc2c356b44d5a3e7b00a87e3160405160405180910390a4600101610916565b5050505050565b836109e06108b482611183565b825184511415806109f357508151845114155b15610a115760405163125b84af60e31b815260040160405180910390fd5b5f5b8451811015610f52575f5485516001600160a01b0390911690636ec934da90879084908110610a4457610a44613fcb565b60200260200101516040518263ffffffff1660e01b8152600401610a7791906001600160a01b0391909116815260200190565b602060405180830381865afa158015610a92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab69190613fdf565b610afd57848181518110610acc57610acc613fcb565b602002602001015160405163e2a7bea360e01b815260040161090b91906001600160a01b0391909116815260200190565b838181518110610b0f57610b0f613fcb565b602002602001015160200151848281518110610b2d57610b2d613fcb565b60200260200101515f01511115610b9d57838181518110610b5057610b50613fcb565b60200260200101515f0151848281518110610b6d57610b6d613fcb565b6020026020010151602001516040516307198f4960e11b815260040161090b929190918252602082015260400190565b838181518110610baf57610baf613fcb565b602002602001015160600151848281518110610bcd57610bcd613fcb565b6020026020010151604001511115610c3f57838181518110610bf157610bf1613fcb565b602002602001015160400151848281518110610c0f57610c0f613fcb565b602002602001015160600151604051633ed3c20960e01b815260040161090b929190918252602082015260400190565b828181518110610c5157610c51613fcb565b602002602001015160200151838281518110610c6f57610c6f613fcb565b60200260200101515f01511115610caf57828181518110610c9257610c92613fcb565b60200260200101515f0151838281518110610b6d57610b6d613fcb565b828181518110610cc157610cc1613fcb565b602002602001015160600151838281518110610cdf57610cdf613fcb565b6020026020010151604001511115610d2157828181518110610d0357610d03613fcb565b602002602001015160400151838281518110610c0f57610c0f613fcb565b5f868152600260205260408120865160019290889085908110610d4657610d46613fcb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f015f6101000a81548160ff021916908315150217905550838181518110610d9757610d97613fcb565b602002602001015160025f8881526020019081526020015f205f878481518110610dc357610dc3613fcb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206001015f820151815f015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050828181518110610e3257610e32613fcb565b602002602001015160025f8881526020019081526020015f205f878481518110610e5e57610e5e613fcb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206006015f820151815f015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050848181518110610ecd57610ecd613fcb565b60200260200101516001600160a01b0316867f95a075f6a3ae087a97ecedeae8ce7f68343e14879806015d44cfb66a8a0e4515868481518110610f1257610f12613fcb565b6020026020010151868581518110610f2c57610f2c613fcb565b6020026020010151604051610f42929190613ffa565b60405180910390a3600101610a13565b505050505050565b6001600160a01b0382165f908152600360205260408120610f7b9083611f91565b9392505050565b6001600160a01b038216610fab57604051633250574960e11b81525f600482015260240161090b565b5f610fb7838333611fa8565b9050836001600160a01b0316816001600160a01b031614611005576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161090b565b50505050565b5f5f805160206143db833981519152611023846111c6565b83106110545760405163295f44f760e21b81526001600160a01b03851660048201526024810184905260440161090b565b6001600160a01b0384165f908152602091825260408082208583529092522054905092915050565b61109683838360405180602001604052805f8152506117ef565b505050565b5f6110aa86868686865f61182a565b90505b95945050505050565b6110be6135be565b610f7b8383600161209e565b6110d26121b9565b6110db8261225f565b6108a382826122f6565b5f5f805160206143db8339815191526111095f8051602061443b8339815191525490565b83106111315760405163295f44f760e21b81525f60048201526024810184905260440161090b565b80600201838154811061114657611146613fcb565b905f5260205f200154915050919050565b5f6111606123b2565b505f8051602061441b8339815191525b90565b5f6110aa8686868686600161182a565b5f6107dd82611e9c565b600180545f918261119d8361407e565b91905055905061117033826123fb565b5f6111bb858585855f612414565b90505b949350505050565b5f5f805160206143fb8339815191526001600160a01b0383166111fe576040516322718ad960e21b81525f600482015260240161090b565b6001600160a01b039092165f908152600390920160205250604090205490565b5f61122a836001541190565b61123557505f6107dd565b505f9182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f546001600160a01b0316331461128c57604051630b56d23b60e41b815233600482015260240161090b565b5f5b8151811015611096576112bb8282815181106112ac576112ac613fcb565b60200260200101516001541190565b6112f5578181815181106112d1576112d1613fcb565b602002602001015160405163500f73d960e01b815260040161090b91815260200190565b5f61134483838151811061130b5761130b613fcb565b602002602001015160035f876001600160a01b03166001600160a01b031681526020019081526020015f2061269390919063ffffffff16565b9050801561139d5782828151811061135e5761135e613fcb565b6020026020010151846001600160a01b03167fe9919c1157673d017b4e5eef8d4c012fadcf6ee40cf5f99a0912a0109b5d584260405160405180910390a35b5060010161128e565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060915f805160206143fb8339815191529161080290613f93565b6113ec6135be565b610f7b83835f61209e565b5f6111bb858585856001612414565b5f81516001600160401b03811115611420576114206136f6565b60405190808252806020026020018201604052801561145957816020015b6114466135be565b81526020019060019003908161143e5790505b5090505f5b82518110156114b5576040518060a001604052805f81526020015f1981526020015f81526020015f1981526020015f8152508282815181106114a2576114a2613fcb565b602090810291909101015260010161145e565b50611096838383846109d3565b6108a333838361269e565b816114da6108b482611183565b5f5b8251811015611005575f61153c60025f8781526020019081526020015f205f86858151811061150d5761150d613fcb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20600b0161274d565b90506115628585848151811061155457611554613fcb565b6020026020010151836108a7565b60025f8681526020019081526020015f205f85848151811061158657611586613fcb565b6020908102919091018101516001600160a01b031682528101919091526040015f908120805460ff19168155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600781018290556008810182905560098101829055600a810182905590600b820181818161160a82826135e8565b50505050505083828151811061162257611622613fcb565b60200260200101516001600160a01b0316857f2023c939803754d4dcfd53da97e330124d37f4a2a1ac84e182310e4c1093a52c60405160405180910390a3506001016114dc565b5f611675846001541190565b61168057505f6111be565b6001600160a01b0385165f9081526003602052604090206116a19085611f91565b6116ac57505f6111be565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff166116dc57505f6111be565b5f8481526002602090815260408083206001600160a01b038716845290915290206111bb90600b0183612759565b604080515f815260208101909152606090826001600160401b03811115611733576117336136f6565b60405190808252806020026020018201604052801561176657816020015b60608152602001906001900390816117515790505b5091505f5b838110156117e7576117c23086868481811061178957611789613fcb565b905060200281019061179b91906140a9565b856040516020016117ae939291906140f2565b60405160208183030381529060405261277a565b8382815181106117d4576117d4613fcb565b602090810291909101015260010161176b565b505092915050565b6117fa848484610f82565b61100533858585856127e3565b6001600160a01b0381165f9081526003602052604090206060906107dd9061274d565b5f5f1986036118465761183f87868585612902565b9050611940565b61185287878787611669565b6118895760405163c6c8526f60e01b8152600481018790526001600160a01b0380871660248301528516604482015260640161090b565b5f611896888888866129b4565b80519091508410806118ab5750806020015184115b156118e05780516020820151604051633e5d735760e21b8152600481018790526024810192909252604482015260640161090b565b5f6118ed86888787612902565b905061190f8260800151611900836129e2565b61190a9190614117565b612a12565b92508160400151831015611929578160400151925061193d565b816060015183111561193d57816060015192505b50505b9695505050505050565b5f611953612a37565b805490915060ff600160401b82041615906001600160401b03165f811580156119795750825b90505f826001600160401b031660011480156119945750303b155b9050811580156119a2575080155b156119c05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156119ea57845460ff60401b1916600160401b1785555b611a446040518060400160405280601081526020016f53697a6520436f6c6c656374696f6e7360801b8152506040518060400160405280601081526020016f53495a455f434f4c4c454354494f4e5360801b815250612a5f565b611a4c612a71565b611a54612a71565b611a5c612a71565b5f80546001600160a01b0319166001600160a01b0388161790558315610f5257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6060611ace82611e9c565b505f611ad8612a79565b90505f815111611af65760405180602001604052805f815250610f7b565b80611b0084612aa8565b604051602001611b11929190614136565b6040516020818303038152906040529392505050565b6060611b34836001541190565b611b545760405163500f73d960e01b81526004810184905260240161090b565b5f8381526002602090815260408083206001600160a01b038616845290915290205460ff16611ba857604051631713bf1160e21b8152600481018490526001600160a01b038316602482015260440161090b565b5f8381526002602090815260408083206001600160a01b03861684529091529020610f7b90600b0161274d565b5f546001600160a01b03163314611c0157604051630b56d23b60e41b815233600482015260240161090b565b5f5b815181101561109657611c218282815181106112ac576112ac613fcb565b611c37578181815181106112d1576112d1613fcb565b5f611c86838381518110611c4d57611c4d613fcb565b602002602001015160035f876001600160a01b03166001600160a01b031681526020019081526020015f20612b3790919063ffffffff16565b90508015611cdf57828281518110611ca057611ca0613fcb565b6020026020010151846001600160a01b03167fd0b1806956ca744bd88a4e4057a137959cb88d8d4e7e8d793301cfdf7df7cb2b60405160405180910390a35b50600101611c03565b6001600160a01b039182165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b82611d416108b482611183565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff16611d9557604051631713bf1160e21b8152600481018590526001600160a01b038416602482015260440161090b565b5f5b82518110156109cc57611dea838281518110611db557611db5613fcb565b6020908102919091018101515f8881526002835260408082206001600160a01b038a16835290935291909120600b0190612b42565b50828181518110611dfd57611dfd613fcb565b60200260200101516001600160a01b0316846001600160a01b0316867fe00af39ea120882fcd5da1b6a7614c6dcd0ace02f617e8347e3159e9922550fe60405160405180910390a4600101611d97565b5f6001600160e01b031982166380ac58cd60e01b1480611e7d57506001600160e01b03198216635b5e139f60e01b145b806107dd57506301ffc9a760e01b6001600160e01b03198316146107dd565b5f80611ea783612b56565b90506001600160a01b0381166107dd57604051637e27328960e01b81526004810184905260240161090b565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6110968383836001612b8f565b611f24838383612ca2565b611096576001600160a01b038316611f5257604051637e27328960e01b81526004810182905260240161090b565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161090b565b5f610f7b836001600160a01b038416612d06565b5f8181526001830160205260408120541515610f7b565b5f80611fb5858585612de9565b90506001600160a01b03811661203c57612037845f8051602061443b83398151915280545f8381527f645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0360205260408120829055600182018355919091527fa42f15e5d656f8155fd7419d740a6073999f19cd6e061449ce4a257150545bf20155565b61205f565b846001600160a01b0316816001600160a01b03161461205f5761205f8185612eeb565b6001600160a01b03851661207b5761207684612f82565b6111be565b846001600160a01b0316816001600160a01b0316146111be576111be858561304f565b6120a66135be565b6120b1846001541190565b6120d15760405163500f73d960e01b81526004810185905260240161090b565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff1661212557604051631713bf1160e21b8152600481018590526001600160a01b038416602482015260440161090b565b81612153575f8481526002602090815260408083206001600160a01b03871684529091529020600601612178565b5f8481526002602090815260408083206001600160a01b038716845290915290206001015b6040805160a0810182528254815260018301546020820152600283015491810191909152600382015460608201526004909101546080820152949350505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061223f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122335f8051602061441b833981519152546001600160a01b031690565b6001600160a01b031614155b1561225d5760405163703e46dd60e11b815260040160405180910390fd5b565b5f8054604051632474521560e21b8152600481018390523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa1580156122ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122d09190613fdf565b6108a35760405163e2517d3f60e01b81523360048201526024810182905260440161090b565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612350575060408051601f3d908101601f1916820190925261234d91810190614164565b60015b61237857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161090b565b5f8051602061441b83398151915281146123a857604051632a87526960e21b81526004810182905260240161090b565b61109683836130a7565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461225d5760405163703e46dd60e11b815260040160405180910390fd5b6108a3828260405180602001604052805f8152506130fc565b6001600160a01b0385165f908152600360205260408120815b61243682613113565b8110156125b2575f612448838361311c565b5f8181526002602090815260408083206001600160a01b038c16845290915290205490915060ff1661247a57506125aa565b5f8181526002602090815260408083206001600160a01b038b1684529091528120600b01905b6124a982613113565b8110156125a6575f6124bb838361311c565b9050306001600160a01b031663c260d2068d868d858e8e156040518763ffffffff1660e01b81526004016124f49695949392919061417b565b602060405180830381865afa92505050801561252d575060408051601f3d908101601f1916820190925261252a91810190614164565b60015b612566573d80801561255a576040519150601f19603f3d011682016040523d82523d5f602084013e61255f565b606091505b505061259d565b88801561257357508b8110155b806125875750881580156125875750808c10155b1561259b575f9750505050505050506110ad565b505b506001016124a0565b5050505b60010161242d565b50604051636130690360e11b8152309063c260d206906125e2908a905f19908a905f908b908b159060040161417b565b602060405180830381865afa92505050801561261b575060408051601f3d908101601f1916820190925261261891810190614164565b60015b612654573d808015612648576040519150601f19603f3d011682016040523d82523d5f602084013e61264d565b606091505b5050612686565b8380156126615750868110155b806126755750831580156126755750808710155b15612684575f925050506110ad565b505b5060019695505050505050565b5f610f7b8383613127565b5f805160206143fb8339815191526001600160a01b0383166126de57604051630b61174360e31b81526001600160a01b038416600482015260240161090b565b6001600160a01b038481165f818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b60605f610f7b83613173565b6001600160a01b0381165f9081526001830160205260408120541515610f7b565b60605f80846001600160a01b03168460405161279691906141b5565b5f60405180830381855af49150503d805f81146127ce576040519150601f19603f3d011682016040523d82523d5f602084013e6127d3565b606091505b50915091506110ad8583836131cc565b6001600160a01b0383163b156109cc57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906128259088908890879087906004016141d0565b6020604051808303815f875af192505050801561285f575060408051601f3d908101601f1916820190925261285c91810190614202565b60015b6128c6573d80801561288c576040519150601f19603f3d011682016040523d82523d5f602084013e612891565b606091505b5080515f036128be57604051633250574960e11b81526001600160a01b038516600482015260240161090b565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610f5257604051633250574960e11b81526001600160a01b038516600482015260240161090b565b5f811561297f57604051620d37ab60e81b81526001600160a01b03868116600483015260248201859052851690630d37ab00906044015b602060405180830381865afa158015612954573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129789190614164565b90506111be565b604051632b59bd9960e01b81526001600160a01b03868116600483015260248201859052851690632b59bd9990604401612939565b6129bc6135be565b6129c7858484613228565b90506129d281613305565b156111be576111bb84848461209e565b5f6001600160ff1b03821115612a0e5760405163123baf0360e11b81526004810183905260240161090b565b5090565b5f80821215612a0e57604051635467221960e11b81526004810183905260240161090b565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006107dd565b612a67613344565b6108a38282613369565b61225d613344565b6060612a8446612aa8565b604051602001612a94919061421d565b604051602081830303815290604052905090565b60605f612ab483613399565b60010190505f816001600160401b03811115612ad257612ad26136f6565b6040519080825280601f01601f191660200182016040528015612afc576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612b0657509392505050565b5f610f7b8383612d06565b5f610f7b836001600160a01b038416613127565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b5f805160206143fb8339815191528180612bb157506001600160a01b03831615155b15612c72575f612bc085611e9c565b90506001600160a01b03841615801590612bec5750836001600160a01b0316816001600160a01b031614155b8015612bff5750612bfd8185611ce8565b155b15612c285760405163a9fbf51f60e01b81526001600160a01b038516600482015260240161090b565b8215612c705784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5f93845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160a01b038316158015906111be5750826001600160a01b0316846001600160a01b03161480612cdb5750612cdb8484611ce8565b806111be5750826001600160a01b0316612cf483611ed3565b6001600160a01b031614949350505050565b5f8181526001830160205260408120548015612de0575f612d28600183614096565b85549091505f90612d3b90600190614096565b9050808214612d9a575f865f018281548110612d5957612d59613fcb565b905f5260205f200154905080875f018481548110612d7957612d79613fcb565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612dab57612dab614279565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506107dd565b5f9150506107dd565b5f5f805160206143fb83398151915281612e0285612b56565b90506001600160a01b03841615612e1e57612e1e818587611f19565b6001600160a01b03811615612e5a57612e395f865f80612b8f565b6001600160a01b0381165f908152600383016020526040902080545f190190555b6001600160a01b03861615612e8a576001600160a01b0386165f9081526003830160205260409020805460010190555b5f85815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b5f805160206143db8339815191525f612f03846111c6565b5f8481526001840160209081526040808320546001600160a01b03891684529186905290912091925090818314612f5b575f838152602082815260408083205485845281842081905583526001870190915290208290555b5f948552600190930160209081526040808620869055928552929092528220919091555050565b5f8051602061443b833981519152545f805160206143db833981519152905f90612fae90600190614096565b5f848152600384016020526040812054600285018054939450909284908110612fd957612fd9613fcb565b905f5260205f200154905080846002018381548110612ffa57612ffa613fcb565b5f9182526020808320909101929092558281526003860190915260408082208490558682528120556002840180548061303557613035614279565b600190038181905f5260205f20015f905590555050505050565b5f805160206143db8339815191525f6001613069856111c6565b6130739190614096565b6001600160a01b039094165f9081526020838152604080832087845282528083208690559482526001909301909252502055565b6130b082613470565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156130f457611096828261277a565b6108a36134d3565b61310683836134f2565b611096335f8585856127e3565b5f6107dd825490565b5f610f7b8383613553565b5f81815260018301602052604081205461316c57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556107dd565b505f6107dd565b6060815f018054806020026020016040519081016040528092919081815260200182805480156131c057602002820191905f5260205f20905b8154815260200190600101908083116131ac575b50505050509050919050565b6060826131e1576131dc82613579565b610f7b565b81511580156131f857506001600160a01b0384163b155b1561322157604051639996b31560e01b81526001600160a01b038516600482015260240161090b565b5080610f7b565b6132306135be565b8161329d5760405163c421a75960e01b81526001600160a01b03858116600483015284169063c421a7599060240160a060405180830381865afa158015613279573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612076919061428d565b604051630264211160e11b81526001600160a01b0385811660048301528416906304c842229060240160a060405180830381865afa1580156132e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111be919061428d565b80515f9015801561331857506020820151155b801561332657506040820151155b801561333457506060820151155b80156107dd575050608001511590565b61334c6135a5565b61225d57604051631afcd79f60e31b815260040160405180910390fd5b613371613344565b5f805160206143fb8339815191528061338a848261431f565b5060018101611005838261431f565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106133d75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613403576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061342157662386f26fc10000830492506010015b6305f5e1008310613439576305f5e100830492506008015b612710831061344d57612710830492506004015b6064831061345f576064830492506002015b600a83106107dd5760010192915050565b806001600160a01b03163b5f036134a557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161090b565b5f8051602061441b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b341561225d5760405163b398979f60e01b815260040160405180910390fd5b6001600160a01b03821661351b57604051633250574960e11b81525f600482015260240161090b565b5f61352783835f611fa8565b90506001600160a01b03811615611096576040516339e3563760e11b81525f600482015260240161090b565b5f825f01828154811061356857613568613fcb565b905f5260205f200154905092915050565b8051156135895780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b5f6135ae612a37565b54600160401b900460ff16919050565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5080545f8255905f5260205f20908101906135a291905b80821115612a0e575f81556001016135ff565b6001600160e01b0319811681146135a2575f80fd5b5f60208284031215613637575f80fd5b8135610f7b81613612565b5f5b8381101561365c578181015183820152602001613644565b50505f910152565b5f815180845261367b816020860160208601613642565b601f01601f19169290920160200192915050565b602081525f610f7b6020830184613664565b5f602082840312156136b1575f80fd5b5035919050565b6001600160a01b03811681146135a2575f80fd5b5f80604083850312156136dd575f80fd5b82356136e8816136b8565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b038111828210171561372c5761372c6136f6565b60405290565b604051601f8201601f191681016001600160401b038111828210171561375a5761375a6136f6565b604052919050565b5f6001600160401b0382111561377a5761377a6136f6565b5060051b60200190565b5f805f60608486031215613796575f80fd5b833592506020808501356137a9816136b8565b925060408501356001600160401b038111156137c3575f80fd5b8501601f810187136137d3575f80fd5b80356137e66137e182613762565b613732565b81815260059190911b82018301908381019089831115613804575f80fd5b928401925b8284101561382b57833561381c816136b8565b82529284019290840190613809565b80955050505050509250925092565b5f82601f830112613849575f80fd5b813560206138596137e183613762565b8083825260208201915060208460051b87010193508684111561387a575f80fd5b602086015b8481101561389f578035613892816136b8565b835291830191830161387f565b509695505050505050565b5f82601f8301126138b9575f80fd5b813560206138c96137e183613762565b82815260a092830285018201928282019190878511156138e7575f80fd5b8387015b858110156139405781818a031215613901575f80fd5b61390961370a565b81358152858201358682015260408083013590820152606080830135908201526080808301359082015284529284019281016138eb565b5090979650505050505050565b5f805f8060808587031215613960575f80fd5b8435935060208501356001600160401b038082111561397d575f80fd5b6139898883890161383a565b9450604087013591508082111561399e575f80fd5b6139aa888389016138aa565b935060608701359150808211156139bf575f80fd5b506139cc878288016138aa565b91505092959194509250565b5f805f606084860312156139ea575f80fd5b83356139f5816136b8565b92506020840135613a05816136b8565b929592945050506040919091013590565b5f805f805f60a08688031215613a2a575f80fd5b8535613a35816136b8565b9450602086013593506040860135613a4c816136b8565b92506060860135613a5c816136b8565b949793965091946080013592915050565b5f8060408385031215613a7e575f80fd5b823591506020830135613a90816136b8565b809150509250929050565b60a081016107dd828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5f82601f830112613ae3575f80fd5b81356001600160401b03811115613afc57613afc6136f6565b613b0f601f8201601f1916602001613732565b818152846020838601011115613b23575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613b50575f80fd5b8235613b5b816136b8565b915060208301356001600160401b03811115613b75575f80fd5b613b8185828601613ad4565b9150509250929050565b5f805f8060808587031215613b9e575f80fd5b8435613ba9816136b8565b9350602085013592506040850135613bc0816136b8565b9396929550929360600135925050565b5f60208284031215613be0575f80fd5b8135610f7b816136b8565b5f8060408385031215613bfc575f80fd5b8235613c07816136b8565b91506020838101356001600160401b03811115613c22575f80fd5b8401601f81018613613c32575f80fd5b8035613c406137e182613762565b81815260059190911b82018301908381019088831115613c5e575f80fd5b928401925b82841015613c7c57833582529284019290840190613c63565b80955050505050509250929050565b5f8060408385031215613c9c575f80fd5b8235915060208301356001600160401b03811115613cb8575f80fd5b613b818582860161383a565b80151581146135a2575f80fd5b5f8060408385031215613ce2575f80fd5b8235613ced816136b8565b91506020830135613a9081613cc4565b5f805f8060808587031215613d10575f80fd5b8435613d1b816136b8565b9350602085013592506040850135613d32816136b8565b91506060850135613d42816136b8565b939692955090935050565b5f8060208385031215613d5e575f80fd5b82356001600160401b0380821115613d74575f80fd5b818501915085601f830112613d87575f80fd5b813581811115613d95575f80fd5b8660208260051b8501011115613da9575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015613e1057603f19888603018452613dfe858351613664565b94509285019290850190600101613de2565b5092979650505050505050565b5f805f8060808587031215613e30575f80fd5b8435613e3b816136b8565b93506020850135613e4b816136b8565b92506040850135915060608501356001600160401b03811115613e6c575f80fd5b6139cc87828801613ad4565b602080825282518282018190525f9190848201906040850190845b81811015613eaf57835183529284019291840191600101613e93565b50909695505050505050565b5f805f805f8060c08789031215613ed0575f80fd5b8635613edb816136b8565b9550602087013594506040870135613ef2816136b8565b93506060870135613f02816136b8565b92506080870135915060a0870135613f1981613cc4565b809150509295509295509295565b602080825282518282018190525f9190848201906040850190845b81811015613eaf5783516001600160a01b031683529284019291840191600101613f42565b5f8060408385031215613f78575f80fd5b8235613f83816136b8565b91506020830135613a90816136b8565b600181811c90821680613fa757607f821691505b602082108103613fc557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215613fef575f80fd5b8151610f7b81613cc4565b6101408101614034828580518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b825160a0830152602083015160c0830152604083015160e083015260608301516101008301526080830151610120830152610f7b565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161408f5761408f61406a565b5060010190565b818103818111156107dd576107dd61406a565b5f808335601e198436030181126140be575f80fd5b8301803591506001600160401b038211156140d7575f80fd5b6020019150368190038213156140eb575f80fd5b9250929050565b828482375f8382015f8152835161410d818360208801613642565b0195945050505050565b8082018281125f8312801582168215821617156117e7576117e761406a565b5f8351614147818460208801613642565b83519083019061415b818360208801613642565b01949350505050565b5f60208284031215614174575f80fd5b5051919050565b6001600160a01b0396871681526020810195909552928516604085015293166060830152608082019290925290151560a082015260c00190565b5f82516141c6818460208701613642565b9190910192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906110aa90830184613664565b5f60208284031215614212575f80fd5b8151610f7b81613612565b7f68747470733a2f2f6170692e73697a652e6372656469742f636f6c6c656374698152636f6e732f60e01b60208201525f8251614261816024850160208701613642565b602f60f81b6024939091019283015250602501919050565b634e487b7160e01b5f52603160045260245ffd5b5f60a0828403121561429d575f80fd5b6142a561370a565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b601f82111561109657805f5260205f20601f840160051c810160208510156143005750805b601f840160051c820191505b818110156109cc575f815560010161430c565b81516001600160401b03811115614338576143386136f6565b61434c816143468454613f93565b846142db565b602080601f83116001811461437f575f84156143685750858301515b5f19600386901b1c1916600185901b178555610f52565b5f85815260208120601f198616915b828110156143ad5788860151825594840194600190910190840161438e565b50858210156143ca57878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed02a2646970667358221220e59a92e1326fe69bc8ef73a3a4c298d183775920c09cde9c598e31108b85348464736f6c63430008170033", - "sourceMap": "1286:1003:259:-:0;;;1171:4:87;1128:48;;1609:53:259;;;;;;;;;-1:-1:-1;1633:22:259;:20;:22::i;:::-;1286:1003;;7709:422:86;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:86;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:86;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:86;-1:-1:-1;;;;;8033:33:86;;;;;8085:29;;158:50:476;;;8085:29:86;;146:2:476;131:18;8085:29:86;;;;;;;7979:146;7758:373;7709:422::o;14:200:476:-;1286:1003:259;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b60805161419e620001005f395f8181611e0d01528181611e360152612006015261419e5ff3fe608060405260043610610233575f3560e01c806370a0823111610129578063ad3cb1cc116100a8578063c87b56dd1161006d578063c87b56dd146106b0578063dd2bc302146106cf578063de1eb880146106fb578063e985e9c51461071a578063eb379a5814610739575f80fd5b8063ad3cb1cc146105f7578063b88d4fde14610627578063b9d33d1e14610646578063c260d20614610672578063c4d66de814610691575f80fd5b8063a0529e5f116100ee578063a0529e5f1461054f578063a22cb4651461056e578063abff12221461058d578063ac888c07146105ac578063ac9650d8146105cb575f80fd5b806370a08231146104bf5780638134a9e0146104de57806393c0d3f3146104fd57806395d89b411461051c5780639feffdb014610530575f80fd5b806342842e0e116101b5578063565380571161017a578063565380571461042d5780635fb7f10c1461044e5780636352211e1461046d578063647f1a9c1461048c578063678b9bad146104a0575f80fd5b806342842e0e146103a9578063495e6d89146103c85780634f1ef286146103e75780634f6ccce7146103fa57806352d1902d14610419575f80fd5b806318160ddd116101fb57806318160ddd1461030357806318d5932d1461032d57806320d634561461034c57806323b872dd1461036b5780632f745c591461038a575f80fd5b806301ffc9a71461023757806306fdde031461026b578063081812fc1461028c578063095ea7b3146102c35780630b379508146102e4575b5f80fd5b348015610242575f80fd5b5061025661025136600461340d565b610758565b60405190151581526020015b60405180910390f35b348015610276575f80fd5b5061027f610782565b6040516102629190613475565b348015610297575f80fd5b506102ab6102a6366004613487565b610823565b6040516001600160a01b039091168152602001610262565b3480156102ce575f80fd5b506102e26102dd3660046134b2565b610837565b005b3480156102ef575f80fd5b506102e26102fe36600461356a565b610846565b34801561030e575f80fd5b505f80516020614149833981519152545b604051908152602001610262565b348015610338575f80fd5b506102e261034736600461366c565b61097c565b348015610357575f80fd5b506102566103663660046134b2565b6109ba565b348015610376575f80fd5b506102e26103853660046136bb565b6109e2565b348015610395575f80fd5b5061031f6103a43660046134b2565b610a65565b3480156103b4575f80fd5b506102e26103c33660046136bb565b610ad6565b3480156103d3575f80fd5b5061031f6103e23660046136f9565b610af5565b6102e26103f53660046137bb565b610b10565b348015610405575f80fd5b5061031f610414366004613487565b610b2b565b348015610424575f80fd5b5061031f610b9d565b348015610438575f80fd5b50610256610447366004613487565b6001541190565b348015610459575f80fd5b5061031f6104683660046136f9565b610bb9565b348015610478575f80fd5b506102ab610487366004613487565b610bc9565b348015610497575f80fd5b5061031f610bd3565b3480156104ab575f80fd5b506102566104ba366004613807565b610bf3565b3480156104ca575f80fd5b5061031f6104d936600461384c565b610c0c565b3480156104e9575f80fd5b506102566104f8366004613867565b610c64565b348015610508575f80fd5b506102e2610517366004613895565b610ca6565b348015610527575f80fd5b5061027f610e3c565b34801561053b575f80fd5b5061025661054a366004613807565b610e7a565b34801561055a575f80fd5b506102e2610569366004613935565b610e89565b348015610579575f80fd5b506102e26105883660046139d3565b6110ff565b348015610598575f80fd5b506102e26105a7366004613935565b61110a565b3480156105b7575f80fd5b506102566105c63660046139ff565b6112a6565b3480156105d6575f80fd5b506105ea6105e5366004613a4f565b611347565b6040516102629190613abd565b348015610602575f80fd5b5061027f604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610632575f80fd5b506102e2610641366004613b1f565b61142c565b348015610651575f80fd5b5061066561066036600461384c565b611444565b6040516102629190613b86565b34801561067d575f80fd5b5061031f61068c366004613bc9565b611467565b34801561069c575f80fd5b506102e26106ab36600461384c565b611587565b3480156106bb575f80fd5b5061027f6106ca366004613487565b611701565b3480156106da575f80fd5b506106ee6106e9366004613867565b611765565b6040516102629190613c35565b348015610706575f80fd5b506102e2610715366004613895565b611813565b348015610725575f80fd5b50610256610734366004613c75565b611943565b348015610744575f80fd5b506102e261075336600461356a565b61198f565b5f6001600160e01b0319821663780e9d6360e01b148061077c575061077c82611ab2565b92915050565b5f8051602061410983398151915280546060919081906107a190613ca1565b80601f01602080910402602001604051908101604052809291908181526020018280546107cd90613ca1565b80156108185780601f106107ef57610100808354040283529160200191610818565b820191905f5260205f20905b8154815290600101906020018083116107fb57829003601f168201915b505050505091505090565b5f61082d82611b01565b5061077c82611b38565b610842828233611b71565b5050565b8261085a61085382610bc9565b3383611b7e565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff166108b357604051631713bf1160e21b8152600481018590526001600160a01b03841660248201526044015b60405180910390fd5b5f5b8251811015610975575f6109098483815181106108d4576108d4613cd9565b6020908102919091018101515f8981526002835260408082206001600160a01b038b16835290935291909120600b0190611be2565b9050801561096c5783828151811061092357610923613cd9565b60200260200101516001600160a01b0316856001600160a01b0316877f41a3856b408397a3953ee2e3fc5961815599fafae92aa64253fea4124c15835260405160405180910390a45b506001016108b5565b5050505050565b5f546001600160a01b031633146109a857604051630b56d23b60e41b81523360048201526024016108aa565b6109b484848484611bf6565b50505050565b6001600160a01b0382165f9081526003602052604081206109db9083611cf5565b9392505050565b6001600160a01b038216610a0b57604051633250574960e11b81525f60048201526024016108aa565b5f610a17838333611d0c565b9050836001600160a01b0316816001600160a01b0316146109b4576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016108aa565b5f5f805160206140e9833981519152610a7d84610c0c565b8310610aae5760405163295f44f760e21b81526001600160a01b0385166004820152602481018490526044016108aa565b6001600160a01b0384165f908152602091825260408082208583529092522054905092915050565b610af083838360405180602001604052805f81525061142c565b505050565b5f610b0486868686865f611467565b90505b95945050505050565b610b18611e02565b610b2182611ea8565b6108428282611f3f565b5f5f805160206140e9833981519152610b4f5f805160206141498339815191525490565b8310610b775760405163295f44f760e21b81525f6004820152602481018490526044016108aa565b806002018381548110610b8c57610b8c613cd9565b905f5260205f200154915050919050565b5f610ba6611ffb565b505f805160206141298339815191525b90565b5f610b0486868686866001611467565b5f61077c82611b01565b600180545f9182610be383613d01565b919050559050610bb63382612044565b5f610c01858585855f61205d565b90505b949350505050565b5f5f805160206141098339815191526001600160a01b038316610c44576040516322718ad960e21b81525f60048201526024016108aa565b6001600160a01b039092165f908152600390920160205250604090205490565b5f610c70836001541190565b610c7b57505f61077c565b505f9182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f546001600160a01b03163314610cd257604051630b56d23b60e41b81523360048201526024016108aa565b5f6040518060a001604052805f81526020015f1981526020015f81526020015f1981526020015f81525090505f5b82518110156109b457610d2d838281518110610d1e57610d1e613cd9565b60200260200101516001541190565b610d6757828181518110610d4357610d43613cd9565b602002602001015160405163500f73d960e01b81526004016108aa91815260200190565b5f610db6848381518110610d7d57610d7d613cd9565b602002602001015160035f886001600160a01b03166001600160a01b031681526020019081526020015f2061230c90919063ffffffff16565b90508015610e3357838281518110610dd057610dd0613cd9565b6020026020010151856001600160a01b03167fe9919c1157673d017b4e5eef8d4c012fadcf6ee40cf5f99a0912a0109b5d584260405160405180910390a3610e3385858481518110610e2457610e24613cd9565b60200260200101518586611bf6565b50600101610d00565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060915f80516020614109833981519152916107a190613ca1565b5f610c0185858585600161205d565b81610e9661085382610bc9565b5f5b82518110156109b4575f5483516001600160a01b0390911690636ec934da90859084908110610ec957610ec9613cd9565b60200260200101516040518263ffffffff1660e01b8152600401610efc91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610f17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3b9190613d19565b610f8257828181518110610f5157610f51613cd9565b602002602001015160405163e2a7bea360e01b81526004016108aa91906001600160a01b0391909116815260200190565b828181518110610f9457610f94613cd9565b60200260200101516001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffb9190613d19565b156110435782818151811061101257611012613cd9565b602002602001015160405163b4e1115760e01b81526004016108aa91906001600160a01b0391909116815260200190565b5f84815260026020526040812084516001929086908590811061106857611068613cd9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508281815181106110b9576110b9613cd9565b60200260200101516001600160a01b0316847f42e38738c8d2e007a797548d288aea65537b98d212336f6fa33ca20c7a99088560405160405180910390a3600101610e98565b610842338383612317565b8161111761085382610bc9565b5f5b82518110156109b4575f61117960025f8781526020019081526020015f205f86858151811061114a5761114a613cd9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20600b016123bd565b905061119f8585848151811061119157611191613cd9565b602002602001015183610846565b60025f8681526020019081526020015f205f8584815181106111c3576111c3613cd9565b6020908102919091018101516001600160a01b031682528101919091526040015f908120805460ff19168155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600781018290556008810182905560098101829055600a810182905590600b8201818181611247828261339f565b50505050505083828151811061125f5761125f613cd9565b60200260200101516001600160a01b0316857fa328ee555a02ae133b939087dcc439417783329f687112f415290a4637f64ab760405160405180910390a350600101611119565b5f6112b2846001541190565b6112bd57505f610c04565b6001600160a01b0385165f9081526003602052604090206112de9085611cf5565b6112e957505f610c04565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff1661131957505f610c04565b5f8481526002602090815260408083206001600160a01b03871684529091529020610c0190600b01836123c9565b604080515f815260208101909152606090826001600160401b03811115611370576113706134dc565b6040519080825280602002602001820160405280156113a357816020015b606081526020019060019003908161138e5790505b5091505f5b83811015611424576113ff308686848181106113c6576113c6613cd9565b90506020028101906113d89190613d47565b856040516020016113eb93929190613d90565b6040516020818303038152906040526123ea565b83828151811061141157611411613cd9565b60209081029190910101526001016113a8565b505092915050565b6114378484846109e2565b6109b43385858585612453565b6001600160a01b0381165f90815260036020526040902060609061077c906123bd565b5f5f1986036114835761147c87868585612572565b905061157d565b61148f878787876112a6565b6114c65760405163c6c8526f60e01b8152600481018790526001600160a01b038087166024830152851660448201526064016108aa565b5f6114d388888886612624565b80519091508410806114e85750806020015184115b1561151d5780516020820151604051633e5d735760e21b815260048101879052602481019290925260448201526064016108aa565b5f61152a86888787612572565b905061154c826080015161153d83612652565b6115479190613db5565b612682565b92508160400151831015611566578160400151925061157a565b816060015183111561157a57816060015192505b50505b9695505050505050565b5f6115906126a7565b805490915060ff600160401b82041615906001600160401b03165f811580156115b65750825b90505f826001600160401b031660011480156115d15750303b155b9050811580156115df575080155b156115fd5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561162757845460ff60401b1916600160401b1785555b6116816040518060400160405280601081526020016f53697a6520436f6c6c656374696f6e7360801b8152506040518060400160405280601081526020016f53495a455f434f4c4c454354494f4e5360801b8152506126cf565b6116896126e1565b6116916126e1565b6116996126e1565b5f80546001600160a01b0319166001600160a01b03881617905583156116f957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b606061170c82611b01565b505f6117166126e9565b90505f8151116117345760405180602001604052805f8152506109db565b8061173e84612718565b60405160200161174f929190613dd4565b6040516020818303038152906040529392505050565b6060611772836001541190565b6117925760405163500f73d960e01b8152600481018490526024016108aa565b5f8381526002602090815260408083206001600160a01b038616845290915290205460ff166117e657604051631713bf1160e21b8152600481018490526001600160a01b03831660248201526044016108aa565b5f8381526002602090815260408083206001600160a01b038616845290915290206109db90600b016123bd565b5f546001600160a01b0316331461183f57604051630b56d23b60e41b81523360048201526024016108aa565b6118476133ba565b5f5b82518110156109b457611867838281518110610d1e57610d1e613cd9565b61187d57828181518110610d4357610d43613cd9565b5f6118cc84838151811061189357611893613cd9565b602002602001015160035f886001600160a01b03166001600160a01b031681526020019081526020015f206127a790919063ffffffff16565b9050801561193a578382815181106118e6576118e6613cd9565b6020026020010151856001600160a01b03167fd0b1806956ca744bd88a4e4057a137959cb88d8d4e7e8d793301cfdf7df7cb2b60405160405180910390a361193a85858481518110610e2457610e24613cd9565b50600101611849565b6001600160a01b039182165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b8261199c61085382610bc9565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff166119f057604051631713bf1160e21b8152600481018590526001600160a01b03841660248201526044016108aa565b5f5b8251811015610975575f611a46848381518110611a1157611a11613cd9565b6020908102919091018101515f8981526002835260408082206001600160a01b038b16835290935291909120600b01906127b2565b90508015611aa957838281518110611a6057611a60613cd9565b60200260200101516001600160a01b0316856001600160a01b0316877f8e2f88c467ecc78e2adbbe6d65b6176668f4cc362a196a5c46d203a9db8d8fbe60405160405180910390a45b506001016119f2565b5f6001600160e01b031982166380ac58cd60e01b1480611ae257506001600160e01b03198216635b5e139f60e01b145b8061077c57506301ffc9a760e01b6001600160e01b031983161461077c565b5f80611b0c836127c6565b90506001600160a01b03811661077c57604051637e27328960e01b8152600481018490526024016108aa565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b610af083838360016127ff565b611b89838383612912565b610af0576001600160a01b038316611bb757604051637e27328960e01b8152600481018290526024016108aa565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016108aa565b5f6109db836001600160a01b038416612976565b611c01836001541190565b611c215760405163500f73d960e01b8152600481018490526024016108aa565b60408051808201825283815260208082018481526001600160a01b0388165f81815260048085528682208a8352855290869020945180518655808501516001870155808701516002870155606080820151600388015560809182015192870192909255925180516005870155938401516006860155838601516007860155830151600885015591015160099092019190915590518491907fb20b9722fd4401237d66274470a4daf19d973d3f3150edba3bcadf8467ed9b4290611ce79086908690613e02565b60405180910390a350505050565b5f81815260018301602052604081205415156109db565b5f80611d19858585612a59565b90506001600160a01b038116611da057611d9b845f8051602061414983398151915280545f8381527f645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0360205260408120829055600182018355919091527fa42f15e5d656f8155fd7419d740a6073999f19cd6e061449ce4a257150545bf20155565b611dc3565b846001600160a01b0316816001600160a01b031614611dc357611dc38185612b5b565b6001600160a01b038516611ddf57611dda84612bf2565b610c04565b846001600160a01b0316816001600160a01b031614610c0457610c048585612cbf565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611e8857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611e7c5f80516020614129833981519152546001600160a01b031690565b6001600160a01b031614155b15611ea65760405163703e46dd60e11b815260040160405180910390fd5b565b5f8054604051632474521560e21b8152600481018390523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015611ef5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f199190613d19565b6108425760405163e2517d3f60e01b8152336004820152602481018290526044016108aa565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f99575060408051601f3d908101601f19168201909252611f9691810190613e72565b60015b611fc157604051634c9c8ce360e01b81526001600160a01b03831660048201526024016108aa565b5f805160206141298339815191528114611ff157604051632a87526960e21b8152600481018290526024016108aa565b610af08383612d17565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ea65760405163703e46dd60e11b815260040160405180910390fd5b610842828260405180602001604052805f815250612d6c565b6001600160a01b0385165f908152600360205260408120815b61207f82612d83565b811015612213575f6120918383612d8c565b5f8181526002602090815260408083206001600160a01b038c16845290915290205490915060ff166120c3575061220b565b5f8181526002602090815260408083206001600160a01b038b1684529091528120600b01905b6120f282612d83565b811015612207575f6121048383612d8c565b9050612112818b8a15612d97565b1561211d57506121ff565b306001600160a01b031663c260d2068d868d858e8e156040518763ffffffff1660e01b815260040161215496959493929190613e89565b602060405180830381865afa92505050801561218d575060408051601f3d908101601f1916820190925261218a91810190613e72565b60015b6121c6573d8080156121ba576040519150601f19603f3d011682016040523d82523d5f602084013e6121bf565b606091505b50506121fd565b8880156121d357508b8110155b806121e75750881580156121e75750808c10155b156121fb575f975050505050505050610b07565b505b505b6001016120e9565b5050505b600101612076565b5061222087868515612d97565b1561222f576001915050610b07565b604051636130690360e11b8152309063c260d2069061225e908a905f19908a905f908b908b1590600401613e89565b602060405180830381865afa925050508015612297575060408051601f3d908101601f1916820190925261229491810190613e72565b60015b6122d0573d8080156122c4576040519150601f19603f3d011682016040523d82523d5f602084013e6122c9565b606091505b5050612302565b8380156122dd5750868110155b806122f15750831580156122f15750808710155b15612300575f92505050610b07565b505b6001915050610b07565b5f6109db8383612e6d565b5f805160206141098339815191526001600160a01b03831661235757604051630b61174360e31b81526001600160a01b03841660048201526024016108aa565b6001600160a01b038481165f818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611ce7565b60605f6109db83612eb9565b6001600160a01b0381165f90815260018301602052604081205415156109db565b60605f80846001600160a01b0316846040516124069190613ec3565b5f60405180830381855af49150503d805f811461243e576040519150601f19603f3d011682016040523d82523d5f602084013e612443565b606091505b5091509150610b07858383612f12565b6001600160a01b0383163b1561097557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290612495908890889087908790600401613ede565b6020604051808303815f875af19250505080156124cf575060408051601f3d908101601f191682019092526124cc91810190613f10565b60015b612536573d8080156124fc576040519150601f19603f3d011682016040523d82523d5f602084013e612501565b606091505b5080515f0361252e57604051633250574960e11b81526001600160a01b03851660048201526024016108aa565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146116f957604051633250574960e11b81526001600160a01b03851660048201526024016108aa565b5f81156125ef57604051620d37ab60e81b81526001600160a01b03868116600483015260248201859052851690630d37ab00906044015b602060405180830381865afa1580156125c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e89190613e72565b9050610c04565b604051632b59bd9960e01b81526001600160a01b03868116600483015260248201859052851690632b59bd99906044016125a9565b61262c6133ba565b612637858484612f6e565b90506126428161304b565b15610c0457610c0185858461308a565b5f6001600160ff1b0382111561267e5760405163123baf0360e11b8152600481018390526024016108aa565b5090565b5f8082121561267e57604051635467221960e11b8152600481018390526024016108aa565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0061077c565b6126d7613125565b610842828261314a565b611ea6613125565b60606126f446612718565b6040516020016127049190613f2b565b604051602081830303815290604052905090565b60605f6127248361317a565b60010190505f816001600160401b03811115612742576127426134dc565b6040519080825280601f01601f19166020018201604052801561276c576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461277657509392505050565b5f6109db8383612976565b5f6109db836001600160a01b038416612e6d565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b5f80516020614109833981519152818061282157506001600160a01b03831615155b156128e2575f61283085611b01565b90506001600160a01b0384161580159061285c5750836001600160a01b0316816001600160a01b031614155b801561286f575061286d8185611943565b155b156128985760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016108aa565b82156128e05784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5f93845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160a01b03831615801590610c045750826001600160a01b0316846001600160a01b0316148061294b575061294b8484611943565b80610c045750826001600160a01b031661296483611b38565b6001600160a01b031614949350505050565b5f8181526001830160205260408120548015612a50575f612998600183613d34565b85549091505f906129ab90600190613d34565b9050808214612a0a575f865f0182815481106129c9576129c9613cd9565b905f5260205f200154905080875f0184815481106129e9576129e9613cd9565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612a1b57612a1b613f87565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061077c565b5f91505061077c565b5f5f8051602061410983398151915281612a72856127c6565b90506001600160a01b03841615612a8e57612a8e818587611b7e565b6001600160a01b03811615612aca57612aa95f865f806127ff565b6001600160a01b0381165f908152600383016020526040902080545f190190555b6001600160a01b03861615612afa576001600160a01b0386165f9081526003830160205260409020805460010190555b5f85815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b5f805160206140e98339815191525f612b7384610c0c565b5f8481526001840160209081526040808320546001600160a01b03891684529186905290912091925090818314612bcb575f838152602082815260408083205485845281842081905583526001870190915290208290555b5f948552600190930160209081526040808620869055928552929092528220919091555050565b5f80516020614149833981519152545f805160206140e9833981519152905f90612c1e90600190613d34565b5f848152600384016020526040812054600285018054939450909284908110612c4957612c49613cd9565b905f5260205f200154905080846002018381548110612c6a57612c6a613cd9565b5f91825260208083209091019290925582815260038601909152604080822084905586825281205560028401805480612ca557612ca5613f87565b600190038181905f5260205f20015f905590555050505050565b5f805160206140e98339815191525f6001612cd985610c0c565b612ce39190613d34565b6001600160a01b039094165f9081526020838152604080832087845282528083208690559482526001909301909252502055565b612d2082613251565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612d6457610af082826123ea565b6108426132b4565b612d7683836132d3565b610af0335f858585612453565b5f61077c825490565b5f6109db8383613334565b5f81612e0557604051630cfa9a4960e01b81526001600160a01b038581166004830152841690630cfa9a4990602401602060405180830381865afa158015612de1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dda9190613d19565b60405163044ce7c360e41b81526001600160a01b0385811660048301528416906344ce7c3090602401602060405180830381865afa158015612e49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c049190613d19565b5f818152600183016020526040812054612eb257508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561077c565b505f61077c565b6060815f01805480602002602001604051908101604052809291908181526020018280548015612f0657602002820191905f5260205f20905b815481526020019060010190808311612ef2575b50505050509050919050565b606082612f2757612f228261335a565b6109db565b8151158015612f3e57506001600160a01b0384163b155b15612f6757604051639996b31560e01b81526001600160a01b03851660048201526024016108aa565b50806109db565b612f766133ba565b81612fe35760405163c421a75960e01b81526001600160a01b03858116600483015284169063c421a7599060240160a060405180830381865afa158015612fbf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dda9190613f9b565b604051630264211160e11b81526001600160a01b0385811660048301528416906304c842229060240160a060405180830381865afa158015613027573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c049190613f9b565b80515f9015801561305e57506020820151155b801561306c57506040820151155b801561307a57506060820151155b801561077c575050608001511590565b6130926133ba565b816130c1576001600160a01b0384165f90815260046020908152604080832086845290915290206005016130e4565b6001600160a01b0384165f90815260046020908152604080832086845290915290205b6040805160a0810182528254815260018301546020820152600283015491810191909152600382015460608201526004909101546080820152949350505050565b61312d613386565b611ea657604051631afcd79f60e31b815260040160405180910390fd5b613152613125565b5f805160206141098339815191528061316b848261402d565b50600181016109b4838261402d565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106131b85772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106131e4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061320257662386f26fc10000830492506010015b6305f5e100831061321a576305f5e100830492506008015b612710831061322e57612710830492506004015b60648310613240576064830492506002015b600a831061077c5760010192915050565b806001600160a01b03163b5f0361328657604051634c9c8ce360e01b81526001600160a01b03821660048201526024016108aa565b5f8051602061412983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b3415611ea65760405163b398979f60e01b815260040160405180910390fd5b6001600160a01b0382166132fc57604051633250574960e11b81525f60048201526024016108aa565b5f61330883835f611d0c565b90506001600160a01b03811615610af0576040516339e3563760e11b81525f60048201526024016108aa565b5f825f01828154811061334957613349613cd9565b905f5260205f200154905092915050565b80511561336a5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b5f61338f6126a7565b54600160401b900460ff16919050565b5080545f8255905f5260205f209081019061338391906133e4565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5b8082111561267e575f81556001016133e5565b6001600160e01b031981168114613383575f80fd5b5f6020828403121561341d575f80fd5b81356109db816133f8565b5f5b8381101561344257818101518382015260200161342a565b50505f910152565b5f8151808452613461816020860160208601613428565b601f01601f19169290920160200192915050565b602081525f6109db602083018461344a565b5f60208284031215613497575f80fd5b5035919050565b6001600160a01b0381168114613383575f80fd5b5f80604083850312156134c3575f80fd5b82356134ce8161349e565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715613512576135126134dc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613540576135406134dc565b604052919050565b5f6001600160401b03821115613560576135606134dc565b5060051b60200190565b5f805f6060848603121561357c575f80fd5b8335925060208085013561358f8161349e565b925060408501356001600160401b038111156135a9575f80fd5b8501601f810187136135b9575f80fd5b80356135cc6135c782613548565b613518565b81815260059190911b820183019083810190898311156135ea575f80fd5b928401925b828410156136115783356136028161349e565b825292840192908401906135ef565b80955050505050509250925092565b5f60a08284031215613630575f80fd5b6136386134f0565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f805f806101808587031215613680575f80fd5b843561368b8161349e565b9350602085013592506136a18660408701613620565b91506136b08660e08701613620565b905092959194509250565b5f805f606084860312156136cd575f80fd5b83356136d88161349e565b925060208401356136e88161349e565b929592945050506040919091013590565b5f805f805f60a0868803121561370d575f80fd5b85356137188161349e565b945060208601359350604086013561372f8161349e565b9250606086013561373f8161349e565b949793965091946080013592915050565b5f82601f83011261375f575f80fd5b81356001600160401b03811115613778576137786134dc565b61378b601f8201601f1916602001613518565b81815284602083860101111561379f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156137cc575f80fd5b82356137d78161349e565b915060208301356001600160401b038111156137f1575f80fd5b6137fd85828601613750565b9150509250929050565b5f805f806080858703121561381a575f80fd5b84356138258161349e565b935060208501359250604085013561383c8161349e565b9396929550929360600135925050565b5f6020828403121561385c575f80fd5b81356109db8161349e565b5f8060408385031215613878575f80fd5b82359150602083013561388a8161349e565b809150509250929050565b5f80604083850312156138a6575f80fd5b82356138b18161349e565b91506020838101356001600160401b038111156138cc575f80fd5b8401601f810186136138dc575f80fd5b80356138ea6135c782613548565b81815260059190911b82018301908381019088831115613908575f80fd5b928401925b828410156139265783358252928401929084019061390d565b80955050505050509250929050565b5f8060408385031215613946575f80fd5b823591506020808401356001600160401b03811115613963575f80fd5b8401601f81018613613973575f80fd5b80356139816135c782613548565b81815260059190911b8201830190838101908883111561399f575f80fd5b928401925b828410156139265783356139b78161349e565b825292840192908401906139a4565b8015158114613383575f80fd5b5f80604083850312156139e4575f80fd5b82356139ef8161349e565b9150602083013561388a816139c6565b5f805f8060808587031215613a12575f80fd5b8435613a1d8161349e565b9350602085013592506040850135613a348161349e565b91506060850135613a448161349e565b939692955090935050565b5f8060208385031215613a60575f80fd5b82356001600160401b0380821115613a76575f80fd5b818501915085601f830112613a89575f80fd5b813581811115613a97575f80fd5b8660208260051b8501011115613aab575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015613b1257603f19888603018452613b0085835161344a565b94509285019290850190600101613ae4565b5092979650505050505050565b5f805f8060808587031215613b32575f80fd5b8435613b3d8161349e565b93506020850135613b4d8161349e565b92506040850135915060608501356001600160401b03811115613b6e575f80fd5b613b7a87828801613750565b91505092959194509250565b602080825282518282018190525f9190848201906040850190845b81811015613bbd57835183529284019291840191600101613ba1565b50909695505050505050565b5f805f805f8060c08789031215613bde575f80fd5b8635613be98161349e565b9550602087013594506040870135613c008161349e565b93506060870135613c108161349e565b92506080870135915060a0870135613c27816139c6565b809150509295509295509295565b602080825282518282018190525f9190848201906040850190845b81811015613bbd5783516001600160a01b031683529284019291840191600101613c50565b5f8060408385031215613c86575f80fd5b8235613c918161349e565b9150602083013561388a8161349e565b600181811c90821680613cb557607f821691505b602082108103613cd357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201613d1257613d12613ced565b5060010190565b5f60208284031215613d29575f80fd5b81516109db816139c6565b8181038181111561077c5761077c613ced565b5f808335601e19843603018112613d5c575f80fd5b8301803591506001600160401b03821115613d75575f80fd5b602001915036819003821315613d89575f80fd5b9250929050565b828482375f8382015f81528351613dab818360208801613428565b0195945050505050565b8082018281125f83128015821682158216171561142457611424613ced565b5f8351613de5818460208801613428565b835190830190613df9818360208801613428565b01949350505050565b6101408101613e3c828580518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b825160a0830152602083015160c0830152604083015160e0830152606083015161010083015260808301516101208301526109db565b5f60208284031215613e82575f80fd5b5051919050565b6001600160a01b0396871681526020810195909552928516604085015293166060830152608082019290925290151560a082015260c00190565b5f8251613ed4818460208701613428565b9190910192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610b049083018461344a565b5f60208284031215613f20575f80fd5b81516109db816133f8565b7f68747470733a2f2f6170692e73697a652e6372656469742f636f6c6c656374698152636f6e732f60e01b60208201525f8251613f6f816024850160208701613428565b602f60f81b6024939091019283015250602501919050565b634e487b7160e01b5f52603160045260245ffd5b5f60a08284031215613fab575f80fd5b613fb36134f0565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b601f821115610af057805f5260205f20601f840160051c8101602085101561400e5750805b601f840160051c820191505b81811015610975575f815560010161401a565b81516001600160401b03811115614046576140466134dc565b61405a816140548454613ca1565b84613fe9565b602080601f83116001811461408d575f84156140765750858301515b5f19600386901b1c1916600185901b1785556116f9565b5f85815260208120601f198616915b828110156140bb5788860151825594840194600190910190840161409c565b50858210156140d857878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed02a264697066735822122021e4470df07f7e75ac6571ab49f1e05aad8ab9ac39d9d4eb5611acb5bb313ea064736f6c63430008170033", + "sourceMap": "1286:1003:256:-:0;;;1171:4:88;1128:48;;1609:53:256;;;;;;;;;-1:-1:-1;1633:22:256;:20;:22::i;:::-;1286:1003;;7709:422:87;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:87;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:87;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:87;-1:-1:-1;;;;;8033:33:87;;;;;8085:29;;158:50:486;;;8085:29:87;;146:2:486;131:18;8085:29:87;;;;;;;7979:146;7758:373;7709:422::o;14:200:486:-;1286:1003:256;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x608060405260043610610249575f3560e01c806370a0823111610134578063ac9650d8116100b3578063c4d66de811610078578063c4d66de8146106f2578063c87b56dd14610711578063dd2bc30214610730578063de1eb8801461075c578063e985e9c51461077b578063eb379a581461079a575f80fd5b8063ac9650d81461062c578063ad3cb1cc14610658578063b88d4fde14610688578063b9d33d1e146106a7578063c260d206146106d3575f80fd5b80639feffdb0116100f95780639feffdb014610591578063a0529e5f146105b0578063a22cb465146105cf578063abff1222146105ee578063ac888c071461060d575f80fd5b806370a08231146105015780638134a9e01461052057806393c0d3f31461053f57806395d89b411461055e5780639c71db1e14610572575f80fd5b806342842e0e116101cb57806352d1902d1161019057806352d1902d1461045b578063565380571461046f5780635fb7f10c146104905780636352211e146104af578063647f1a9c146104ce578063678b9bad146104e2575f80fd5b806342842e0e146103bf578063495e6d89146103de57806349b6d14f146103fd5780634f1ef286146104295780634f6ccce71461043c575f80fd5b806315d5cf991161021157806315d5cf991461031957806318160ddd1461033857806320d634561461036257806323b872dd146103815780632f745c59146103a0575f80fd5b806301ffc9a71461024d57806306fdde0314610281578063081812fc146102a2578063095ea7b3146102d95780630b379508146102fa575b5f80fd5b348015610258575f80fd5b5061026c610267366004613627565b6107b9565b60405190151581526020015b60405180910390f35b34801561028c575f80fd5b506102956107e3565b604051610278919061368f565b3480156102ad575f80fd5b506102c16102bc3660046136a1565b610884565b6040516001600160a01b039091168152602001610278565b3480156102e4575f80fd5b506102f86102f33660046136cc565b610898565b005b348015610305575f80fd5b506102f8610314366004613784565b6108a7565b348015610324575f80fd5b506102f861033336600461394d565b6109d3565b348015610343575f80fd5b505f8051602061443b833981519152545b604051908152602001610278565b34801561036d575f80fd5b5061026c61037c3660046136cc565b610f5a565b34801561038c575f80fd5b506102f861039b3660046139d8565b610f82565b3480156103ab575f80fd5b506103546103ba3660046136cc565b61100b565b3480156103ca575f80fd5b506102f86103d93660046139d8565b61107c565b3480156103e9575f80fd5b506103546103f8366004613a16565b61109b565b348015610408575f80fd5b5061041c610417366004613a6d565b6110b6565b6040516102789190613a9b565b6102f8610437366004613b3f565b6110ca565b348015610447575f80fd5b506103546104563660046136a1565b6110e5565b348015610466575f80fd5b50610354611157565b34801561047a575f80fd5b5061026c6104893660046136a1565b6001541190565b34801561049b575f80fd5b506103546104aa366004613a16565b611173565b3480156104ba575f80fd5b506102c16104c93660046136a1565b611183565b3480156104d9575f80fd5b5061035461118d565b3480156104ed575f80fd5b5061026c6104fc366004613b8b565b6111ad565b34801561050c575f80fd5b5061035461051b366004613bd0565b6111c6565b34801561052b575f80fd5b5061026c61053a366004613a6d565b61121e565b34801561054a575f80fd5b506102f8610559366004613beb565b611260565b348015610569575f80fd5b506102956113a6565b34801561057d575f80fd5b5061041c61058c366004613a6d565b6113e4565b34801561059c575f80fd5b5061026c6105ab366004613b8b565b6113f7565b3480156105bb575f80fd5b506102f86105ca366004613c8b565b611406565b3480156105da575f80fd5b506102f86105e9366004613cd1565b6114c2565b3480156105f9575f80fd5b506102f8610608366004613c8b565b6114cd565b348015610618575f80fd5b5061026c610627366004613cfd565b611669565b348015610637575f80fd5b5061064b610646366004613d4d565b61170a565b6040516102789190613dbb565b348015610663575f80fd5b50610295604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610693575f80fd5b506102f86106a2366004613e1d565b6117ef565b3480156106b2575f80fd5b506106c66106c1366004613bd0565b611807565b6040516102789190613e78565b3480156106de575f80fd5b506103546106ed366004613ebb565b61182a565b3480156106fd575f80fd5b506102f861070c366004613bd0565b61194a565b34801561071c575f80fd5b5061029561072b3660046136a1565b611ac3565b34801561073b575f80fd5b5061074f61074a366004613a6d565b611b27565b6040516102789190613f27565b348015610767575f80fd5b506102f8610776366004613beb565b611bd5565b348015610786575f80fd5b5061026c610795366004613f67565b611ce8565b3480156107a5575f80fd5b506102f86107b4366004613784565b611d34565b5f6001600160e01b0319821663780e9d6360e01b14806107dd57506107dd82611e4d565b92915050565b5f805160206143fb833981519152805460609190819061080290613f93565b80601f016020809104026020016040519081016040528092919081815260200182805461082e90613f93565b80156108795780601f1061085057610100808354040283529160200191610879565b820191905f5260205f20905b81548152906001019060200180831161085c57829003601f168201915b505050505091505090565b5f61088e82611e9c565b506107dd82611ed3565b6108a3828233611f0c565b5050565b826108bb6108b482611183565b3383611f19565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff1661091457604051631713bf1160e21b8152600481018590526001600160a01b03841660248201526044015b60405180910390fd5b5f5b82518110156109cc5761096983828151811061093457610934613fcb565b6020908102919091018101515f8881526002835260408082206001600160a01b038a16835290935291909120600b0190611f7d565b5082818151811061097c5761097c613fcb565b60200260200101516001600160a01b0316846001600160a01b0316867f1360c7b25382a6f295161363858560fa84e4d0ebc2c356b44d5a3e7b00a87e3160405160405180910390a4600101610916565b5050505050565b836109e06108b482611183565b825184511415806109f357508151845114155b15610a115760405163125b84af60e31b815260040160405180910390fd5b5f5b8451811015610f52575f5485516001600160a01b0390911690636ec934da90879084908110610a4457610a44613fcb565b60200260200101516040518263ffffffff1660e01b8152600401610a7791906001600160a01b0391909116815260200190565b602060405180830381865afa158015610a92573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab69190613fdf565b610afd57848181518110610acc57610acc613fcb565b602002602001015160405163e2a7bea360e01b815260040161090b91906001600160a01b0391909116815260200190565b838181518110610b0f57610b0f613fcb565b602002602001015160200151848281518110610b2d57610b2d613fcb565b60200260200101515f01511115610b9d57838181518110610b5057610b50613fcb565b60200260200101515f0151848281518110610b6d57610b6d613fcb565b6020026020010151602001516040516307198f4960e11b815260040161090b929190918252602082015260400190565b838181518110610baf57610baf613fcb565b602002602001015160600151848281518110610bcd57610bcd613fcb565b6020026020010151604001511115610c3f57838181518110610bf157610bf1613fcb565b602002602001015160400151848281518110610c0f57610c0f613fcb565b602002602001015160600151604051633ed3c20960e01b815260040161090b929190918252602082015260400190565b828181518110610c5157610c51613fcb565b602002602001015160200151838281518110610c6f57610c6f613fcb565b60200260200101515f01511115610caf57828181518110610c9257610c92613fcb565b60200260200101515f0151838281518110610b6d57610b6d613fcb565b828181518110610cc157610cc1613fcb565b602002602001015160600151838281518110610cdf57610cdf613fcb565b6020026020010151604001511115610d2157828181518110610d0357610d03613fcb565b602002602001015160400151838281518110610c0f57610c0f613fcb565b5f868152600260205260408120865160019290889085908110610d4657610d46613fcb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f015f6101000a81548160ff021916908315150217905550838181518110610d9757610d97613fcb565b602002602001015160025f8881526020019081526020015f205f878481518110610dc357610dc3613fcb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206001015f820151815f015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050828181518110610e3257610e32613fcb565b602002602001015160025f8881526020019081526020015f205f878481518110610e5e57610e5e613fcb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f206006015f820151815f015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050848181518110610ecd57610ecd613fcb565b60200260200101516001600160a01b0316867f95a075f6a3ae087a97ecedeae8ce7f68343e14879806015d44cfb66a8a0e4515868481518110610f1257610f12613fcb565b6020026020010151868581518110610f2c57610f2c613fcb565b6020026020010151604051610f42929190613ffa565b60405180910390a3600101610a13565b505050505050565b6001600160a01b0382165f908152600360205260408120610f7b9083611f91565b9392505050565b6001600160a01b038216610fab57604051633250574960e11b81525f600482015260240161090b565b5f610fb7838333611fa8565b9050836001600160a01b0316816001600160a01b031614611005576040516364283d7b60e01b81526001600160a01b038086166004830152602482018490528216604482015260640161090b565b50505050565b5f5f805160206143db833981519152611023846111c6565b83106110545760405163295f44f760e21b81526001600160a01b03851660048201526024810184905260440161090b565b6001600160a01b0384165f908152602091825260408082208583529092522054905092915050565b61109683838360405180602001604052805f8152506117ef565b505050565b5f6110aa86868686865f61182a565b90505b95945050505050565b6110be6135be565b610f7b8383600161209e565b6110d26121b9565b6110db8261225f565b6108a382826122f6565b5f5f805160206143db8339815191526111095f8051602061443b8339815191525490565b83106111315760405163295f44f760e21b81525f60048201526024810184905260440161090b565b80600201838154811061114657611146613fcb565b905f5260205f200154915050919050565b5f6111606123b2565b505f8051602061441b8339815191525b90565b5f6110aa8686868686600161182a565b5f6107dd82611e9c565b600180545f918261119d8361407e565b91905055905061117033826123fb565b5f6111bb858585855f612414565b90505b949350505050565b5f5f805160206143fb8339815191526001600160a01b0383166111fe576040516322718ad960e21b81525f600482015260240161090b565b6001600160a01b039092165f908152600390920160205250604090205490565b5f61122a836001541190565b61123557505f6107dd565b505f9182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f546001600160a01b0316331461128c57604051630b56d23b60e41b815233600482015260240161090b565b5f5b8151811015611096576112bb8282815181106112ac576112ac613fcb565b60200260200101516001541190565b6112f5578181815181106112d1576112d1613fcb565b602002602001015160405163500f73d960e01b815260040161090b91815260200190565b5f61134483838151811061130b5761130b613fcb565b602002602001015160035f876001600160a01b03166001600160a01b031681526020019081526020015f2061269390919063ffffffff16565b9050801561139d5782828151811061135e5761135e613fcb565b6020026020010151846001600160a01b03167fe9919c1157673d017b4e5eef8d4c012fadcf6ee40cf5f99a0912a0109b5d584260405160405180910390a35b5060010161128e565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060915f805160206143fb8339815191529161080290613f93565b6113ec6135be565b610f7b83835f61209e565b5f6111bb858585856001612414565b5f81516001600160401b03811115611420576114206136f6565b60405190808252806020026020018201604052801561145957816020015b6114466135be565b81526020019060019003908161143e5790505b5090505f5b82518110156114b5576040518060a001604052805f81526020015f1981526020015f81526020015f1981526020015f8152508282815181106114a2576114a2613fcb565b602090810291909101015260010161145e565b50611096838383846109d3565b6108a333838361269e565b816114da6108b482611183565b5f5b8251811015611005575f61153c60025f8781526020019081526020015f205f86858151811061150d5761150d613fcb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20600b0161274d565b90506115628585848151811061155457611554613fcb565b6020026020010151836108a7565b60025f8681526020019081526020015f205f85848151811061158657611586613fcb565b6020908102919091018101516001600160a01b031682528101919091526040015f908120805460ff19168155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600781018290556008810182905560098101829055600a810182905590600b820181818161160a82826135e8565b50505050505083828151811061162257611622613fcb565b60200260200101516001600160a01b0316857f2023c939803754d4dcfd53da97e330124d37f4a2a1ac84e182310e4c1093a52c60405160405180910390a3506001016114dc565b5f611675846001541190565b61168057505f6111be565b6001600160a01b0385165f9081526003602052604090206116a19085611f91565b6116ac57505f6111be565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff166116dc57505f6111be565b5f8481526002602090815260408083206001600160a01b038716845290915290206111bb90600b0183612759565b604080515f815260208101909152606090826001600160401b03811115611733576117336136f6565b60405190808252806020026020018201604052801561176657816020015b60608152602001906001900390816117515790505b5091505f5b838110156117e7576117c23086868481811061178957611789613fcb565b905060200281019061179b91906140a9565b856040516020016117ae939291906140f2565b60405160208183030381529060405261277a565b8382815181106117d4576117d4613fcb565b602090810291909101015260010161176b565b505092915050565b6117fa848484610f82565b61100533858585856127e3565b6001600160a01b0381165f9081526003602052604090206060906107dd9061274d565b5f5f1986036118465761183f87868585612902565b9050611940565b61185287878787611669565b6118895760405163c6c8526f60e01b8152600481018790526001600160a01b0380871660248301528516604482015260640161090b565b5f611896888888866129b4565b80519091508410806118ab5750806020015184115b156118e05780516020820151604051633e5d735760e21b8152600481018790526024810192909252604482015260640161090b565b5f6118ed86888787612902565b905061190f8260800151611900836129e2565b61190a9190614117565b612a12565b92508160400151831015611929578160400151925061193d565b816060015183111561193d57816060015192505b50505b9695505050505050565b5f611953612a37565b805490915060ff600160401b82041615906001600160401b03165f811580156119795750825b90505f826001600160401b031660011480156119945750303b155b9050811580156119a2575080155b156119c05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156119ea57845460ff60401b1916600160401b1785555b611a446040518060400160405280601081526020016f53697a6520436f6c6c656374696f6e7360801b8152506040518060400160405280601081526020016f53495a455f434f4c4c454354494f4e5360801b815250612a5f565b611a4c612a71565b611a54612a71565b611a5c612a71565b5f80546001600160a01b0319166001600160a01b0388161790558315610f5257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6060611ace82611e9c565b505f611ad8612a79565b90505f815111611af65760405180602001604052805f815250610f7b565b80611b0084612aa8565b604051602001611b11929190614136565b6040516020818303038152906040529392505050565b6060611b34836001541190565b611b545760405163500f73d960e01b81526004810184905260240161090b565b5f8381526002602090815260408083206001600160a01b038616845290915290205460ff16611ba857604051631713bf1160e21b8152600481018490526001600160a01b038316602482015260440161090b565b5f8381526002602090815260408083206001600160a01b03861684529091529020610f7b90600b0161274d565b5f546001600160a01b03163314611c0157604051630b56d23b60e41b815233600482015260240161090b565b5f5b815181101561109657611c218282815181106112ac576112ac613fcb565b611c37578181815181106112d1576112d1613fcb565b5f611c86838381518110611c4d57611c4d613fcb565b602002602001015160035f876001600160a01b03166001600160a01b031681526020019081526020015f20612b3790919063ffffffff16565b90508015611cdf57828281518110611ca057611ca0613fcb565b6020026020010151846001600160a01b03167fd0b1806956ca744bd88a4e4057a137959cb88d8d4e7e8d793301cfdf7df7cb2b60405160405180910390a35b50600101611c03565b6001600160a01b039182165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b82611d416108b482611183565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff16611d9557604051631713bf1160e21b8152600481018590526001600160a01b038416602482015260440161090b565b5f5b82518110156109cc57611dea838281518110611db557611db5613fcb565b6020908102919091018101515f8881526002835260408082206001600160a01b038a16835290935291909120600b0190612b42565b50828181518110611dfd57611dfd613fcb565b60200260200101516001600160a01b0316846001600160a01b0316867fe00af39ea120882fcd5da1b6a7614c6dcd0ace02f617e8347e3159e9922550fe60405160405180910390a4600101611d97565b5f6001600160e01b031982166380ac58cd60e01b1480611e7d57506001600160e01b03198216635b5e139f60e01b145b806107dd57506301ffc9a760e01b6001600160e01b03198316146107dd565b5f80611ea783612b56565b90506001600160a01b0381166107dd57604051637e27328960e01b81526004810184905260240161090b565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6110968383836001612b8f565b611f24838383612ca2565b611096576001600160a01b038316611f5257604051637e27328960e01b81526004810182905260240161090b565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161090b565b5f610f7b836001600160a01b038416612d06565b5f8181526001830160205260408120541515610f7b565b5f80611fb5858585612de9565b90506001600160a01b03811661203c57612037845f8051602061443b83398151915280545f8381527f645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0360205260408120829055600182018355919091527fa42f15e5d656f8155fd7419d740a6073999f19cd6e061449ce4a257150545bf20155565b61205f565b846001600160a01b0316816001600160a01b03161461205f5761205f8185612eeb565b6001600160a01b03851661207b5761207684612f82565b6111be565b846001600160a01b0316816001600160a01b0316146111be576111be858561304f565b6120a66135be565b6120b1846001541190565b6120d15760405163500f73d960e01b81526004810185905260240161090b565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff1661212557604051631713bf1160e21b8152600481018590526001600160a01b038416602482015260440161090b565b81612153575f8481526002602090815260408083206001600160a01b03871684529091529020600601612178565b5f8481526002602090815260408083206001600160a01b038716845290915290206001015b6040805160a0810182528254815260018301546020820152600283015491810191909152600382015460608201526004909101546080820152949350505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061223f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166122335f8051602061441b833981519152546001600160a01b031690565b6001600160a01b031614155b1561225d5760405163703e46dd60e11b815260040160405180910390fd5b565b5f8054604051632474521560e21b8152600481018390523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa1580156122ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122d09190613fdf565b6108a35760405163e2517d3f60e01b81523360048201526024810182905260440161090b565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612350575060408051601f3d908101601f1916820190925261234d91810190614164565b60015b61237857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161090b565b5f8051602061441b83398151915281146123a857604051632a87526960e21b81526004810182905260240161090b565b61109683836130a7565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461225d5760405163703e46dd60e11b815260040160405180910390fd5b6108a3828260405180602001604052805f8152506130fc565b6001600160a01b0385165f908152600360205260408120815b61243682613113565b8110156125b2575f612448838361311c565b5f8181526002602090815260408083206001600160a01b038c16845290915290205490915060ff1661247a57506125aa565b5f8181526002602090815260408083206001600160a01b038b1684529091528120600b01905b6124a982613113565b8110156125a6575f6124bb838361311c565b9050306001600160a01b031663c260d2068d868d858e8e156040518763ffffffff1660e01b81526004016124f49695949392919061417b565b602060405180830381865afa92505050801561252d575060408051601f3d908101601f1916820190925261252a91810190614164565b60015b612566573d80801561255a576040519150601f19603f3d011682016040523d82523d5f602084013e61255f565b606091505b505061259d565b88801561257357508b8110155b806125875750881580156125875750808c10155b1561259b575f9750505050505050506110ad565b505b506001016124a0565b5050505b60010161242d565b50604051636130690360e11b8152309063c260d206906125e2908a905f19908a905f908b908b159060040161417b565b602060405180830381865afa92505050801561261b575060408051601f3d908101601f1916820190925261261891810190614164565b60015b612654573d808015612648576040519150601f19603f3d011682016040523d82523d5f602084013e61264d565b606091505b5050612686565b8380156126615750868110155b806126755750831580156126755750808710155b15612684575f925050506110ad565b505b5060019695505050505050565b5f610f7b8383613127565b5f805160206143fb8339815191526001600160a01b0383166126de57604051630b61174360e31b81526001600160a01b038416600482015260240161090b565b6001600160a01b038481165f818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b60605f610f7b83613173565b6001600160a01b0381165f9081526001830160205260408120541515610f7b565b60605f80846001600160a01b03168460405161279691906141b5565b5f60405180830381855af49150503d805f81146127ce576040519150601f19603f3d011682016040523d82523d5f602084013e6127d3565b606091505b50915091506110ad8583836131cc565b6001600160a01b0383163b156109cc57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906128259088908890879087906004016141d0565b6020604051808303815f875af192505050801561285f575060408051601f3d908101601f1916820190925261285c91810190614202565b60015b6128c6573d80801561288c576040519150601f19603f3d011682016040523d82523d5f602084013e612891565b606091505b5080515f036128be57604051633250574960e11b81526001600160a01b038516600482015260240161090b565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610f5257604051633250574960e11b81526001600160a01b038516600482015260240161090b565b5f811561297f57604051620d37ab60e81b81526001600160a01b03868116600483015260248201859052851690630d37ab00906044015b602060405180830381865afa158015612954573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129789190614164565b90506111be565b604051632b59bd9960e01b81526001600160a01b03868116600483015260248201859052851690632b59bd9990604401612939565b6129bc6135be565b6129c7858484613228565b90506129d281613305565b156111be576111bb84848461209e565b5f6001600160ff1b03821115612a0e5760405163123baf0360e11b81526004810183905260240161090b565b5090565b5f80821215612a0e57604051635467221960e11b81526004810183905260240161090b565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006107dd565b612a67613344565b6108a38282613369565b61225d613344565b6060612a8446612aa8565b604051602001612a94919061421d565b604051602081830303815290604052905090565b60605f612ab483613399565b60010190505f816001600160401b03811115612ad257612ad26136f6565b6040519080825280601f01601f191660200182016040528015612afc576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612b0657509392505050565b5f610f7b8383612d06565b5f610f7b836001600160a01b038416613127565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b5f805160206143fb8339815191528180612bb157506001600160a01b03831615155b15612c72575f612bc085611e9c565b90506001600160a01b03841615801590612bec5750836001600160a01b0316816001600160a01b031614155b8015612bff5750612bfd8185611ce8565b155b15612c285760405163a9fbf51f60e01b81526001600160a01b038516600482015260240161090b565b8215612c705784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5f93845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160a01b038316158015906111be5750826001600160a01b0316846001600160a01b03161480612cdb5750612cdb8484611ce8565b806111be5750826001600160a01b0316612cf483611ed3565b6001600160a01b031614949350505050565b5f8181526001830160205260408120548015612de0575f612d28600183614096565b85549091505f90612d3b90600190614096565b9050808214612d9a575f865f018281548110612d5957612d59613fcb565b905f5260205f200154905080875f018481548110612d7957612d79613fcb565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612dab57612dab614279565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506107dd565b5f9150506107dd565b5f5f805160206143fb83398151915281612e0285612b56565b90506001600160a01b03841615612e1e57612e1e818587611f19565b6001600160a01b03811615612e5a57612e395f865f80612b8f565b6001600160a01b0381165f908152600383016020526040902080545f190190555b6001600160a01b03861615612e8a576001600160a01b0386165f9081526003830160205260409020805460010190555b5f85815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b5f805160206143db8339815191525f612f03846111c6565b5f8481526001840160209081526040808320546001600160a01b03891684529186905290912091925090818314612f5b575f838152602082815260408083205485845281842081905583526001870190915290208290555b5f948552600190930160209081526040808620869055928552929092528220919091555050565b5f8051602061443b833981519152545f805160206143db833981519152905f90612fae90600190614096565b5f848152600384016020526040812054600285018054939450909284908110612fd957612fd9613fcb565b905f5260205f200154905080846002018381548110612ffa57612ffa613fcb565b5f9182526020808320909101929092558281526003860190915260408082208490558682528120556002840180548061303557613035614279565b600190038181905f5260205f20015f905590555050505050565b5f805160206143db8339815191525f6001613069856111c6565b6130739190614096565b6001600160a01b039094165f9081526020838152604080832087845282528083208690559482526001909301909252502055565b6130b082613470565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156130f457611096828261277a565b6108a36134d3565b61310683836134f2565b611096335f8585856127e3565b5f6107dd825490565b5f610f7b8383613553565b5f81815260018301602052604081205461316c57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556107dd565b505f6107dd565b6060815f018054806020026020016040519081016040528092919081815260200182805480156131c057602002820191905f5260205f20905b8154815260200190600101908083116131ac575b50505050509050919050565b6060826131e1576131dc82613579565b610f7b565b81511580156131f857506001600160a01b0384163b155b1561322157604051639996b31560e01b81526001600160a01b038516600482015260240161090b565b5080610f7b565b6132306135be565b8161329d5760405163c421a75960e01b81526001600160a01b03858116600483015284169063c421a7599060240160a060405180830381865afa158015613279573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612076919061428d565b604051630264211160e11b81526001600160a01b0385811660048301528416906304c842229060240160a060405180830381865afa1580156132e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111be919061428d565b80515f9015801561331857506020820151155b801561332657506040820151155b801561333457506060820151155b80156107dd575050608001511590565b61334c6135a5565b61225d57604051631afcd79f60e31b815260040160405180910390fd5b613371613344565b5f805160206143fb8339815191528061338a848261431f565b5060018101611005838261431f565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106133d75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613403576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061342157662386f26fc10000830492506010015b6305f5e1008310613439576305f5e100830492506008015b612710831061344d57612710830492506004015b6064831061345f576064830492506002015b600a83106107dd5760010192915050565b806001600160a01b03163b5f036134a557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161090b565b5f8051602061441b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b341561225d5760405163b398979f60e01b815260040160405180910390fd5b6001600160a01b03821661351b57604051633250574960e11b81525f600482015260240161090b565b5f61352783835f611fa8565b90506001600160a01b03811615611096576040516339e3563760e11b81525f600482015260240161090b565b5f825f01828154811061356857613568613fcb565b905f5260205f200154905092915050565b8051156135895780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b5f6135ae612a37565b54600160401b900460ff16919050565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5080545f8255905f5260205f20908101906135a291905b80821115612a0e575f81556001016135ff565b6001600160e01b0319811681146135a2575f80fd5b5f60208284031215613637575f80fd5b8135610f7b81613612565b5f5b8381101561365c578181015183820152602001613644565b50505f910152565b5f815180845261367b816020860160208601613642565b601f01601f19169290920160200192915050565b602081525f610f7b6020830184613664565b5f602082840312156136b1575f80fd5b5035919050565b6001600160a01b03811681146135a2575f80fd5b5f80604083850312156136dd575f80fd5b82356136e8816136b8565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b038111828210171561372c5761372c6136f6565b60405290565b604051601f8201601f191681016001600160401b038111828210171561375a5761375a6136f6565b604052919050565b5f6001600160401b0382111561377a5761377a6136f6565b5060051b60200190565b5f805f60608486031215613796575f80fd5b833592506020808501356137a9816136b8565b925060408501356001600160401b038111156137c3575f80fd5b8501601f810187136137d3575f80fd5b80356137e66137e182613762565b613732565b81815260059190911b82018301908381019089831115613804575f80fd5b928401925b8284101561382b57833561381c816136b8565b82529284019290840190613809565b80955050505050509250925092565b5f82601f830112613849575f80fd5b813560206138596137e183613762565b8083825260208201915060208460051b87010193508684111561387a575f80fd5b602086015b8481101561389f578035613892816136b8565b835291830191830161387f565b509695505050505050565b5f82601f8301126138b9575f80fd5b813560206138c96137e183613762565b82815260a092830285018201928282019190878511156138e7575f80fd5b8387015b858110156139405781818a031215613901575f80fd5b61390961370a565b81358152858201358682015260408083013590820152606080830135908201526080808301359082015284529284019281016138eb565b5090979650505050505050565b5f805f8060808587031215613960575f80fd5b8435935060208501356001600160401b038082111561397d575f80fd5b6139898883890161383a565b9450604087013591508082111561399e575f80fd5b6139aa888389016138aa565b935060608701359150808211156139bf575f80fd5b506139cc878288016138aa565b91505092959194509250565b5f805f606084860312156139ea575f80fd5b83356139f5816136b8565b92506020840135613a05816136b8565b929592945050506040919091013590565b5f805f805f60a08688031215613a2a575f80fd5b8535613a35816136b8565b9450602086013593506040860135613a4c816136b8565b92506060860135613a5c816136b8565b949793965091946080013592915050565b5f8060408385031215613a7e575f80fd5b823591506020830135613a90816136b8565b809150509250929050565b60a081016107dd828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5f82601f830112613ae3575f80fd5b81356001600160401b03811115613afc57613afc6136f6565b613b0f601f8201601f1916602001613732565b818152846020838601011115613b23575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613b50575f80fd5b8235613b5b816136b8565b915060208301356001600160401b03811115613b75575f80fd5b613b8185828601613ad4565b9150509250929050565b5f805f8060808587031215613b9e575f80fd5b8435613ba9816136b8565b9350602085013592506040850135613bc0816136b8565b9396929550929360600135925050565b5f60208284031215613be0575f80fd5b8135610f7b816136b8565b5f8060408385031215613bfc575f80fd5b8235613c07816136b8565b91506020838101356001600160401b03811115613c22575f80fd5b8401601f81018613613c32575f80fd5b8035613c406137e182613762565b81815260059190911b82018301908381019088831115613c5e575f80fd5b928401925b82841015613c7c57833582529284019290840190613c63565b80955050505050509250929050565b5f8060408385031215613c9c575f80fd5b8235915060208301356001600160401b03811115613cb8575f80fd5b613b818582860161383a565b80151581146135a2575f80fd5b5f8060408385031215613ce2575f80fd5b8235613ced816136b8565b91506020830135613a9081613cc4565b5f805f8060808587031215613d10575f80fd5b8435613d1b816136b8565b9350602085013592506040850135613d32816136b8565b91506060850135613d42816136b8565b939692955090935050565b5f8060208385031215613d5e575f80fd5b82356001600160401b0380821115613d74575f80fd5b818501915085601f830112613d87575f80fd5b813581811115613d95575f80fd5b8660208260051b8501011115613da9575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015613e1057603f19888603018452613dfe858351613664565b94509285019290850190600101613de2565b5092979650505050505050565b5f805f8060808587031215613e30575f80fd5b8435613e3b816136b8565b93506020850135613e4b816136b8565b92506040850135915060608501356001600160401b03811115613e6c575f80fd5b6139cc87828801613ad4565b602080825282518282018190525f9190848201906040850190845b81811015613eaf57835183529284019291840191600101613e93565b50909695505050505050565b5f805f805f8060c08789031215613ed0575f80fd5b8635613edb816136b8565b9550602087013594506040870135613ef2816136b8565b93506060870135613f02816136b8565b92506080870135915060a0870135613f1981613cc4565b809150509295509295509295565b602080825282518282018190525f9190848201906040850190845b81811015613eaf5783516001600160a01b031683529284019291840191600101613f42565b5f8060408385031215613f78575f80fd5b8235613f83816136b8565b91506020830135613a90816136b8565b600181811c90821680613fa757607f821691505b602082108103613fc557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215613fef575f80fd5b8151610f7b81613cc4565b6101408101614034828580518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b825160a0830152602083015160c0830152604083015160e083015260608301516101008301526080830151610120830152610f7b565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161408f5761408f61406a565b5060010190565b818103818111156107dd576107dd61406a565b5f808335601e198436030181126140be575f80fd5b8301803591506001600160401b038211156140d7575f80fd5b6020019150368190038213156140eb575f80fd5b9250929050565b828482375f8382015f8152835161410d818360208801613642565b0195945050505050565b8082018281125f8312801582168215821617156117e7576117e761406a565b5f8351614147818460208801613642565b83519083019061415b818360208801613642565b01949350505050565b5f60208284031215614174575f80fd5b5051919050565b6001600160a01b0396871681526020810195909552928516604085015293166060830152608082019290925290151560a082015260c00190565b5f82516141c6818460208701613642565b9190910192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906110aa90830184613664565b5f60208284031215614212575f80fd5b8151610f7b81613612565b7f68747470733a2f2f6170692e73697a652e6372656469742f636f6c6c656374698152636f6e732f60e01b60208201525f8251614261816024850160208701613642565b602f60f81b6024939091019283015250602501919050565b634e487b7160e01b5f52603160045260245ffd5b5f60a0828403121561429d575f80fd5b6142a561370a565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b601f82111561109657805f5260205f20601f840160051c810160208510156143005750805b601f840160051c820191505b818110156109cc575f815560010161430c565b81516001600160401b03811115614338576143386136f6565b61434c816143468454613f93565b846142db565b602080601f83116001811461437f575f84156143685750858301515b5f19600386901b1c1916600185901b178555610f52565b5f85815260208120601f198616915b828110156143ad5788860151825594840194600190910190840161438e565b50858210156143ca57878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed02a2646970667358221220e59a92e1326fe69bc8ef73a3a4c298d183775920c09cde9c598e31108b85348464736f6c63430008170033", - "sourceMap": "1286:1003:259:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2333:233:89;;;;;;;;;;-1:-1:-1;2333:233:89;;;;;:::i;:::-;;:::i;:::-;;;565:14:476;;558:22;540:41;;528:2;513:18;2333:233:89;;;;;;;;3545:146:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4791:154::-;;;;;;;;;;-1:-1:-1;4791:154:88;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:476;;;1679:51;;1667:2;1652:18;4791:154:88;1533:203:476;4617:113:88;;;;;;;;;;-1:-1:-1;4617:113:88;;;;;:::i;:::-;;:::i;:::-;;6274:651:261;;;;;;;;;;-1:-1:-1;6274:651:261;;;;;:::i;:::-;;:::i;2789:2096::-;;;;;;;;;;-1:-1:-1;2789:2096:261;;;;;:::i;:::-;;:::i;3048:179:89:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;3201:19:89;3048:179;;;7367:25:476;;;7355:2;7340:18;3048:179:89;7221:177:476;1469:171:263;;;;;;;;;;-1:-1:-1;1469:171:263;;;;;:::i;:::-;;:::i;5494:578:88:-;;;;;;;;;;-1:-1:-1;5494:578:88;;;;;:::i;:::-;;:::i;2645:332:89:-;;;;;;;;;;-1:-1:-1;2645:332:89;;;;;:::i;:::-;;:::i;6138:132:88:-;;;;;;;;;;-1:-1:-1;6138:132:88;;;;;:::i;:::-;;:::i;3851:274:263:-;;;;;;;;;;-1:-1:-1;3851:274:263;;;;;:::i;:::-;;:::i;10444:268::-;;;;;;;;;;-1:-1:-1;10444:268:263;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4161:214:87:-;;;;;;:::i;:::-;;:::i;3299:303:89:-;;;;;;;;;;-1:-1:-1;3299:303:89;;;;;:::i;:::-;;:::i;3708:134:87:-;;;;;;;;;;;;;:::i;1283:136:263:-;;;;;;;;;;-1:-1:-1;1283:136:263;;;;;:::i;:::-;1393:19;;-1:-1:-1;1378:34:263;1283:136;3530:271;;;;;;;;;;-1:-1:-1;3530:271:263;;;;;:::i;:::-;;:::i;3365:118:88:-;;;;;;;;;;-1:-1:-1;3365:118:88;;;;;:::i;:::-;;:::i;1862:166:261:-;;;;;;;;;;;;;:::i;6654:248:263:-;;;;;;;;;;-1:-1:-1;6654:248:263;;;;;:::i;:::-;;:::i;3043:265:88:-;;;;;;;;;;-1:-1:-1;3043:265:88;;;;;:::i;:::-;;:::i;1690:254:263:-;;;;;;;;;;-1:-1:-1;1690:254:263;;;;;:::i;:::-;;:::i;894:502:262:-;;;;;;;;;;-1:-1:-1;894:502:262;;;;;:::i;:::-;;:::i;3755:150:88:-;;;;;;;;;;;;;:::i;10762:271:263:-;;;;;;;;;;-1:-1:-1;10762:271:263;;;;;:::i;:::-;;:::i;6359:245::-;;;;;;;;;;-1:-1:-1;6359:245:263;;;;;:::i;:::-;;:::i;2088:641:261:-;;;;;;;;;;-1:-1:-1;2088:641:261;;;;;:::i;:::-;;:::i;5012:144:88:-;;;;;;;;;;-1:-1:-1;5012:144:88;;;;;:::i;:::-;;:::i;4945:569:261:-;;;;;;;;;;-1:-1:-1;4945:569:261;;;;;:::i;:::-;;:::i;2530:563:263:-;;;;;;;;;;-1:-1:-1;2530:563:263;;;;;:::i;:::-;;:::i;1518:484:91:-;;;;;;;;;;-1:-1:-1;1518:484:91;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1819:58:87:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:87;;;;;6336:233:88;;;;;;;;;;-1:-1:-1;6336:233:88;;;;;:::i;:::-;;:::i;3143:161:263:-;;;;;;;;;;-1:-1:-1;3143:161:263;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4131:1814::-;;;;;;;;;;-1:-1:-1;4131:1814:263;;;;;:::i;:::-;;:::i;1668:272:259:-;;;;;;;;;;-1:-1:-1;1668:272:259;;;;;:::i;:::-;;:::i;3971:255:88:-;;;;;;;;;;-1:-1:-1;3971:255:88;;;;;:::i;:::-;;:::i;1994:486:263:-;;;;;;;;;;-1:-1:-1;1994:486:263;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1402:517:262:-;;;;;;;;;;-1:-1:-1;1402:517:262;;;;;:::i;:::-;;:::i;5222:210:88:-;;;;;;;;;;-1:-1:-1;5222:210:88;;;;;:::i;:::-;;:::i;5574:640:261:-;;;;;;;;;;-1:-1:-1;5574:640:261;;;;;:::i;:::-;;:::i;2333:233:89:-;2446:4;-1:-1:-1;;;;;;2469:50:89;;-1:-1:-1;;;2469:50:89;;:90;;;2523:36;2547:11;2523:23;:36::i;:::-;2462:97;2333:233;-1:-1:-1;;2333:233:89:o;3545:146:88:-;-1:-1:-1;;;;;;;;;;;3670:14:88;;3590:13;;2076:21;;;3670:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3545:146;:::o;4791:154::-;4858:7;4877:22;4891:7;4877:13;:22::i;:::-;;4917:21;4930:7;4917:12;:21::i;4617:113::-;4688:35;4697:2;4701:7;966:10:90;4688:8:88;:35::i;:::-;4617:113;;:::o;6274:651:261:-;6446:12;1536:65;1553:21;1561:12;1553:7;:21::i;:::-;1576:10;1588:12;1536:16;:65::i;:::-;6479:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;6479:33:261;::::1;::::0;;;;;;;:45;::::1;;6474:136;;6547:52;::::0;-1:-1:-1;;;6547:52:261;;::::1;::::0;::::1;19554:25:476::0;;;-1:-1:-1;;;;;19615:32:476;;19595:18;;;19588:60;19527:18;;6547:52:261::1;;;;;;;;6474:136;6625:9;6620:299;6644:13;:20;6640:1;:24;6620:299;;;6740:72;6795:13;6809:1;6795:16;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;6740:25:::1;::::0;;;:11:::1;:25:::0;;;;;;-1:-1:-1;;;;;6740:33:261;::::1;::::0;;;;;;;;;:47:::1;;::::0;:54:::1;:72::i;:::-;;6891:13;6905:1;6891:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;6831:77:261::1;6882:6;-1:-1:-1::0;;;;;6831:77:261::1;6860:12;6831:77;;;;;;;;;;6666:3;;6620:299;;;;6274:651:::0;;;;:::o;2789:2096::-;3054:12;1536:65;1553:21;1561:12;1553:7;:21::i;1536:65::-;3100:20:::1;:27;3082:7;:14;:45;;:96;;;;3149:22;:29;3131:7;:14;:47;;3082:96;3078:165;;;3201:31;;-1:-1:-1::0;;;3201:31:261::1;;;;;;;;;;;3078:165;3302:9;3297:1540;3321:7;:14;3317:1;:18;3297:1540;;;3361:11;::::0;3390:10;;-1:-1:-1;;;;;3361:11:261;;::::1;::::0;:20:::1;::::0;3390:7;;3398:1;;3390:10;::::1;;;;;:::i;:::-;;;;;;;3361:41;;;;;;;;;;;;;;-1:-1:-1::0;;;;;1697:32:476;;;;1679:51;;1667:2;1652:18;;1533:203;3361:41:261::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3356:130;;3459:7;3467:1;3459:10;;;;;;;;:::i;:::-;;;;;;;3429:42;;-1:-1:-1::0;;;3429:42:261::1;;;;;;;-1:-1:-1::0;;;;;1697:32:476;;;;1679:51;;1667:2;1652:18;;1533:203;3356:130:261::1;3538:20;3559:1;3538:23;;;;;;;;:::i;:::-;;;;;;;:32;;;3503:20;3524:1;3503:23;;;;;;;;:::i;:::-;;;;;;;:32;;;:67;3499:207;;;3624:20;3645:1;3624:23;;;;;;;;:::i;:::-;;;;;;;:32;;;3658:20;3679:1;3658:23;;;;;;;;:::i;:::-;;;;;;;:32;;;3597:94;;-1:-1:-1::0;;;3597:94:261::1;;;;;;;;20215:25:476::0;;;20271:2;20256:18;;20249:34;20203:2;20188:18;;20041:248;3499:207:261::1;3756:20;3777:1;3756:23;;;;;;;;:::i;:::-;;;;;;;:30;;;3723:20;3744:1;3723:23;;;;;;;;:::i;:::-;;;;;;;:30;;;:63;3719:197;;;3838:20;3859:1;3838:23;;;;;;;;:::i;:::-;;;;;;;:30;;;3870:20;3891:1;3870:23;;;;;;;;:::i;:::-;;;;;;;:30;;;3813:88;;-1:-1:-1::0;;;3813:88:261::1;;;;;;;;20215:25:476::0;;;20271:2;20256:18;;20249:34;20203:2;20188:18;;20041:248;3719:197:261::1;3970:22;3993:1;3970:25;;;;;;;;:::i;:::-;;;;;;;:34;;;3933:22;3956:1;3933:25;;;;;;;;:::i;:::-;;;;;;;:34;;;:71;3929:253;;;4079:22;4102:1;4079:25;;;;;;;;:::i;:::-;;;;;;;:34;;;4115:22;4138:1;4115:25;;;;;;;;:::i;3929:253::-;4234:22;4257:1;4234:25;;;;;;;;:::i;:::-;;;;;;;:32;;;4199:22;4222:1;4199:25;;;;;;;;:::i;:::-;;;;;;;:32;;;:67;4195:205;;;4318:22;4341:1;4318:25;;;;;;;;:::i;:::-;;;;;;;:32;;;4352:22;4375:1;4352:25;;;;;;;;:::i;4195:205::-;4414:25;::::0;;;:11:::1;:25;::::0;;;;4440:10;;4466:4:::1;::::0;4414:25;4440:7;;4448:1;;4440:10;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;4414:37:261::1;-1:-1:-1::0;;;;;4414:37:261::1;;;;;;;;;;;;:49;;;:56;;;;;;;;;;;;;;;;;;4544:20;4565:1;4544:23;;;;;;;;:::i;:::-;;;;;;;4484:11;:25;4496:12;4484:25;;;;;;;;;;;:37;4510:7;4518:1;4510:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;4484:37:261::1;-1:-1:-1::0;;;;;4484:37:261::1;;;;;;;;;;;;:57;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4643:22;4666:1;4643:25;;;;;;;;:::i;:::-;;;;;;;4581:11;:25;4593:12;4581:25;;;;;;;;;;;:37;4607:7;4615:1;4607:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;4581:37:261::1;-1:-1:-1::0;;;;;4581:37:261::1;;;;;;;;;;;;:59;;:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4749:7;4757:1;4749:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;4688:138:261::1;4727:12;4688:138;4762:20;4783:1;4762:23;;;;;;;;:::i;:::-;;;;;;;4787:22;4810:1;4787:25;;;;;;;;:::i;:::-;;;;;;;4688:138;;;;;;;:::i;:::-;;;;;;;;3337:3;;3297:1540;;;;2789:2096:::0;;;;;:::o;1469:171:263:-;-1:-1:-1;;;;;1585:25:263;;1562:4;1585:25;;;:19;:25;;;;;:48;;1620:12;1585:34;:48::i;:::-;1578:55;1469:171;-1:-1:-1;;;1469:171:263:o;5494:578:88:-;-1:-1:-1;;;;;5588:16:88;;5584:87;;5627:33;;-1:-1:-1;;;5627:33:88;;5657:1;5627:33;;;1679:51:476;1652:18;;5627:33:88;1533:203:476;5584:87:88;5889:21;5913:34;5921:2;5925:7;966:10:90;5913:7:88;:34::i;:::-;5889:58;;5978:4;-1:-1:-1;;;;;5961:21:88;:13;-1:-1:-1;;;;;5961:21:88;;5957:109;;6005:50;;-1:-1:-1;;;6005:50:88;;-1:-1:-1;;;;;21031:15:476;;;6005:50:88;;;21013:34:476;21063:18;;;21056:34;;;21126:15;;21106:18;;;21099:43;20948:18;;6005:50:88;20773:375:476;5957:109:88;5574:498;5494:578;;;:::o;2645:332:89:-;2733:7;-1:-1:-1;;;;;;;;;;;2840:16:89;2850:5;2840:9;:16::i;:::-;2831:5;:25;2827:99;;2879:36;;-1:-1:-1;;;2879:36:89;;-1:-1:-1;;;;;21345:32:476;;2879:36:89;;;21327:51:476;21394:18;;;21387:34;;;21300:18;;2879:36:89;21153:274:476;2827:99:89;-1:-1:-1;;;;;2942:21:89;;:14;:21;;;;;;;;;;;:28;;;;;;;;;-1:-1:-1;2645:332:89;;;;:::o;6138:132:88:-;6224:39;6241:4;6247:2;6251:7;6224:39;;;;;;;;;;;;:16;:39::i;:::-;6138:132;;;:::o;3851:274:263:-;4012:11;4046:72;4063:4;4069:12;4083:6;4091:12;4105:5;4112;4046:16;:72::i;:::-;4039:79;;3851:274;;;;;;;;:::o;10444:268::-;10573:42;;:::i;:::-;10638:67;10678:12;10692:6;10700:4;10638:39;:67::i;4161:214:87:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;3299:303:89:-:0;3365:7;-1:-1:-1;;;;;;;;;;;3472:13:89;-1:-1:-1;;;;;;;;;;;3201:19:89;;3048:179;3472:13;3463:5;:22;3459:101;;3508:41;;-1:-1:-1;;;3508:41:89;;3539:1;3508:41;;;21327:51:476;21394:18;;;21387:34;;;21300:18;;3508:41:89;21153:274:476;3459:101:89;3576:1;:12;;3589:5;3576:19;;;;;;;;:::i;:::-;;;;;;;;;3569:26;;;3299:303;;;:::o;3708:134:87:-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;2956:1:87::1;3708:134:::0;:::o;3530:271:263:-;3689:11;3723:71;3740:4;3746:12;3760:6;3768:12;3782:5;3789:4;3723:16;:71::i;3365:118:88:-;3428:7;3454:22;3468:7;3454:13;:22::i;1862:166:261:-;1955:19;:21;;1908:20;;;1955:21;;;:::i;:::-;;;;;1940:36;;1986:35;1996:10;2008:12;1986:9;:35::i;6654:248:263:-;6806:4;6833:62;6857:4;6863:9;6874:6;6882:5;6889;6833:23;:62::i;:::-;6826:69;;6654:248;;;;;;;:::o;3043:265:88:-;3106:7;-1:-1:-1;;;;;;;;;;;;;;;;3184:19:88;;3180:87;;3226:30;;-1:-1:-1;;;3226:30:88;;3253:1;3226:30;;;1679:51:476;1652:18;;3226:30:88;1533:203:476;3180:87:88;-1:-1:-1;;;;;3283:18:88;;;;;;;:11;;;;:18;;-1:-1:-1;3283:18:88;;;;;3043:265::o;1690:254:263:-;1783:4;1804:33;1824:12;1393:19;;-1:-1:-1;1378:34:263;1283:136;1804:33;1799:77;;-1:-1:-1;1860:5:263;1853:12;;1799:77;-1:-1:-1;1892:25:263;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;1892:33:263;;;;;;;;;;;:45;;;;1690:254::o;894:502:262:-;2359:11:260;;-1:-1:-1;;;;;2359:11:260;2337:10;:34;2333:99;;2394:27;;-1:-1:-1;;;2394:27:260;;2410:10;2394:27;;;1679:51:476;1652:18;;2394:27:260;1533:203:476;2333:99:260;1016:9:262::1;1011:379;1035:13;:20;1031:1;:24;1011:379;;;1081:37;1101:13;1115:1;1101:16;;;;;;;;:::i;:::-;;;;;;;1393:19:263::0;;-1:-1:-1;1378:34:263;1283:136;1081:37:262::1;1076:121;;1165:13;1179:1;1165:16;;;;;;;;:::i;:::-;;;;;;;1145:37;;-1:-1:-1::0;;;1145:37:262::1;;;;;;7367:25:476::0;;7355:2;7340:18;;7221:177;1076:121:262::1;1211:10;1224:47;1254:13;1268:1;1254:16;;;;;;;;:::i;:::-;;;;;;;1224:19;:25;1244:4;-1:-1:-1::0;;;;;1224:25:262::1;-1:-1:-1::0;;;;;1224:25:262::1;;;;;;;;;;;;:29;;:47;;;;:::i;:::-;1211:60;;1289:5;1285:95;;;1348:13;1362:1;1348:16;;;;;;;;:::i;:::-;;;;;;;1342:4;-1:-1:-1::0;;;;;1319:46:262::1;;;;;;;;;;;1285:95;-1:-1:-1::0;1057:3:262::1;;1011:379;;3755:150:88::0;3889:9;3882:16;;3802:13;;-1:-1:-1;;;;;;;;;;;2076:21:88;3882:16;;;:::i;10762:271:263:-;10893:42;;:::i;:::-;10958:68;10998:12;11012:6;11020:5;10958:39;:68::i;6359:245::-;6511:4;6538:59;6562:4;6568:7;6577:6;6585:5;6592:4;6538:23;:59::i;2088:641:261:-;2249:40;2319:7;:14;-1:-1:-1;;;;;2292:42:261;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2249:85;;2349:9;2344:296;2368:7;:14;2364:1;:18;2344:296;;;2419:210;;;;;;;;2468:1;2419:210;;;;-1:-1:-1;;2419:210:261;;;;2540:1;2419:210;;;;-1:-1:-1;;2419:210:261;;;;2613:1;2419:210;;;2403:10;2414:1;2403:13;;;;;;;;:::i;:::-;;;;;;;;;;:226;2384:3;;2344:296;;;;2649:73;2676:12;2690:7;2699:10;2711;2649:26;:73::i;5012:144:88:-;5097:52;966:10:90;5130:8:88;5140;5097:18;:52::i;4945:569:261:-;5085:12;1536:65;1553:21;1561:12;1553:7;:21::i;1536:65::-;5118:9:::1;5113:395;5137:7;:14;5133:1;:18;5113:395;;;5172:30;5205:60;:11;:25;5217:12;5205:25;;;;;;;;;;;:37;5231:7;5239:1;5231:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;5205:37:261::1;-1:-1:-1::0;;;;;5205:37:261::1;;;;;;;;;;;;:51;;:58;:60::i;:::-;5172:93;;5279:80;5319:12;5333:7;5341:1;5333:10;;;;;;;;:::i;:::-;;;;;;;5345:13;5279:39;:80::i;:::-;5380:11;:25;5392:12;5380:25;;;;;;;;;;;:37;5406:7;5414:1;5406:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;5380:37:261::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;5380:37:261;;;5373:44;;-1:-1:-1;;5373:44:261::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;5380:37;5373:44:::1;::::0;::::1;-1:-1:-1::0;5373:44:261;-1:-1:-1;5373:44:261::1;::::0;-1:-1:-1;5373:44:261::1;:::i;:::-;;;;;;;5485:7;5493:1;5485:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;5436:61:261::1;5463:12;5436:61;;;;;;;;;;-1:-1:-1::0;5153:3:261::1;;5113:395;;2530:563:263::0;2708:4;2729:33;2749:12;1393:19;;-1:-1:-1;1378:34:263;1283:136;2729:33;2724:77;;-1:-1:-1;2785:5:263;2778:12;;2724:77;-1:-1:-1;;;;;2815:25:263;;;;;;:19;:25;;;;;:48;;2850:12;2815:34;:48::i;:::-;2810:92;;-1:-1:-1;2886:5:263;2879:12;;2810:92;2916:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;2916:33:263;;;;;;;;;:45;;;2911:89;;-1:-1:-1;2984:5:263;2977:12;;2911:89;3016:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3016:33:263;;;;;;;;;:70;;:47;;3073:12;3016:56;:70::i;1518:484:91:-;1684:12;;;1620:20;1684:12;;;;;;;;1586:22;;1795:4;-1:-1:-1;;;;;1783:24:91;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:34;;1822:9;1817:155;1837:15;;;1817:155;;;1886:75;1923:4;1943;;1948:1;1943:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1952;1930:30;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1886:28;:75::i;:::-;1873:7;1881:1;1873:10;;;;;;;;:::i;:::-;;;;;;;;;;:88;1854:3;;1817:155;;;;1981:14;1518:484;;;;:::o;6336:233:88:-;6449:31;6462:4;6468:2;6472:7;6449:12;:31::i;:::-;6490:72;966:10:90;6538:4:88;6544:2;6548:7;6557:4;6490:33;:72::i;3143:161:263:-;-1:-1:-1;;;;;3263:25:263;;;;;;:19;:25;;;;;3214:30;;3263:34;;:32;:34::i;4131:1814::-;4337:11;-1:-1:-1;;4512:12:263;:27;4508:1431;;4562:61;4590:4;4596:6;4604:5;4611:11;4562:27;:61::i;:::-;4555:68;;;;4508:1431;4740:79;4778:4;4784:12;4798:6;4806:12;4740:37;:79::i;:::-;4735:1204;;4842:80;;-1:-1:-1;;;4842:80:263;;;;;23346:25:476;;;-1:-1:-1;;;;;23445:15:476;;;23425:18;;;23418:43;23497:15;;23477:18;;;23470:43;23319:18;;4842:80:263;23144:375:476;4735:1204:263;5085:42;5146:64;5170:4;5176:12;5190:6;5198:11;5146:23;:64::i;:::-;5236:23;;5085:125;;-1:-1:-1;5228:31:263;;;:66;;;5271:14;:23;;;5263:5;:31;5228:66;5224:705;;;5341:23;;5366;;;;5321:69;;-1:-1:-1;;;5321:69:263;;;;;23726:25:476;;;23767:18;;;23760:34;;;;23810:18;;;23803:34;23699:18;;5321:69:263;23524:319:476;5224:705:263;5429:15;5447:69;5475:12;5489:6;5497:5;5504:11;5447:27;:69::i;:::-;5429:87;;5576:73;5624:14;:24;;;5595:26;5613:7;5595:17;:26::i;:::-;:53;;;;:::i;:::-;5576:18;:73::i;:::-;5570:79;;5717:14;:21;;;5711:3;:27;5707:208;;;5768:14;:21;;;5762:27;;5707:208;;;5824:14;:21;;;5818:3;:27;5814:101;;;5875:14;:21;;;5869:27;;5814:101;5411:518;5033:906;4735:1204;4131:1814;;;;;;;;:::o;1668:272:259:-;4158:30:86;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:86;-1:-1:-1;;;4302:15:86;;;4301:16;;-1:-1:-1;;;;;4348:14:86;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:86;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:86;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:86;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:86;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:86;-1:-1:-1;;;5011:22:86;;;4977:67;1746:53:259::1;;;;;;;;;;;;;;-1:-1:-1::0;;;1746:53:259::1;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;;;1746:53:259::1;;::::0;:13:::1;:53::i;:::-;1809:25;:23;:25::i;:::-;1844:18;:16;:18::i;:::-;1872:24;:22;:24::i;:::-;1907:11;:26:::0;;-1:-1:-1;;;;;;1907:26:259::1;-1:-1:-1::0;;;;;1907:26:259;::::1;;::::0;;5064:101:86;;;;5098:23;;-1:-1:-1;;;;5098:23:86;;;5140:14;;-1:-1:-1;24222:50:476;;5140:14:86;;24210:2:476;24195:18;5140:14:86;;;;;;;4092:1079;;;;;1668:272:259;:::o;3971:255:88:-;4035:13;4060:22;4074:7;4060:13;:22::i;:::-;;4093:21;4117:10;:8;:10::i;:::-;4093:34;;4168:1;4150:7;4144:21;:25;:75;;;;;;;;;;;;;;;;;4186:7;4195:18;:7;:16;:18::i;:::-;4172:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4137:82;3971:255;-1:-1:-1;;;3971:255:88:o;1994:486:263:-;2119:16;2156:33;2176:12;1393:19;;-1:-1:-1;1378:34:263;1283:136;2156:33;2151:105;;2212:33;;-1:-1:-1;;;2212:33:263;;;;;7367:25:476;;;7340:18;;2212:33:263;7221:177:476;2151:105:263;2270:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;2270:33:263;;;;;;;;;:45;;;2265:136;;2338:52;;-1:-1:-1;;;2338:52:263;;;;;19554:25:476;;;-1:-1:-1;;;;;19615:32:476;;19595:18;;;19588:60;19527:18;;2338:52:263;19380:274:476;2265:136:263;2417:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;2417:33:263;;;;;;;;;:56;;:47;;:54;:56::i;1402:517:262:-;2359:11:260;;-1:-1:-1;;;;;2359:11:260;2337:10;:34;2333:99;;2394:27;;-1:-1:-1;;;2394:27:260;;2410:10;2394:27;;;1679:51:476;1652:18;;2394:27:260;1533:203:476;2333:99:260;1528:9:262::1;1523:390;1547:13;:20;1543:1;:24;1523:390;;;1593:37;1613:13;1627:1;1613:16;;;;;;;;:::i;1593:37::-;1588:121;;1677:13;1691:1;1677:16;;;;;;;;:::i;1588:121::-;1723:12;1738:50;1771:13;1785:1;1771:16;;;;;;;;:::i;:::-;;;;;;;1738:19;:25;1758:4;-1:-1:-1::0;;;;;1738:25:262::1;-1:-1:-1::0;;;;;1738:25:262::1;;;;;;;;;;;;:32;;:50;;;;:::i;:::-;1723:65;;1806:7;1802:101;;;1871:13;1885:1;1871:16;;;;;;;;:::i;:::-;;;;;;;1865:4;-1:-1:-1::0;;;;;1838:50:262::1;;;;;;;;;;;1802:101;-1:-1:-1::0;1569:3:262::1;;1523:390;;5222:210:88::0;-1:-1:-1;;;;;5388:27:88;;;5310:4;5388:27;;;:20;:27;;;;;;;;:37;;;;;;;;;;;;;;;5222:210::o;5574:640:261:-;5743:12;1536:65;1553:21;1561:12;1553:7;:21::i;1536:65::-;5776:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;5776:33:261;::::1;::::0;;;;;;;:45;::::1;;5771:136;;5844:52;::::0;-1:-1:-1;;;5844:52:261;;::::1;::::0;::::1;19554:25:476::0;;;-1:-1:-1;;;;;19615:32:476;;19595:18;;;19588:60;19527:18;;5844:52:261::1;19380:274:476::0;5771:136:261::1;5922:9;5917:291;5941:13;:20;5937:1;:24;5917:291;;;6037:69;6089:13;6103:1;6089:16;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;6037:25:::1;::::0;;;:11:::1;:25:::0;;;;;;-1:-1:-1;;;;;6037:33:261;::::1;::::0;;;;;;;;;:47:::1;;::::0;:51:::1;:69::i;:::-;;6180:13;6194:1;6180:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;6125:72:261::1;6171:6;-1:-1:-1::0;;;;;6125:72:261::1;6149:12;6125:72;;;;;;;;;;5963:3;;5917:291;;2673:311:88::0;2786:4;-1:-1:-1;;;;;;2821:40:88;;-1:-1:-1;;;2821:40:88;;:104;;-1:-1:-1;;;;;;;2877:48:88;;-1:-1:-1;;;2877:48:88;2821:104;:156;;;-1:-1:-1;;;;;;;;;;1134:40:93;;;2941:36:88;1035:146:93;17910:241:88;17973:7;17992:13;18008:17;18017:7;18008:8;:17::i;:::-;17992:33;-1:-1:-1;;;;;;18039:19:88;;18035:88;;18081:31;;-1:-1:-1;;;18081:31:88;;;;;7367:25:476;;;7340:18;;18081:31:88;7221:177:476;7372:184:88;7442:7;7523:26;;;:17;:26;;;;;;-1:-1:-1;;;;;7523:26:88;;7372:184::o;16076:120::-;16156:33;16165:2;16169:7;16178:4;16184;16156:8;:33::i;8571:368::-;8683:38;8697:5;8704:7;8713;8683:13;:38::i;:::-;8678:255;;-1:-1:-1;;;;;8741:19:88;;8737:186;;8787:31;;-1:-1:-1;;;8787:31:88;;;;;7367:25:476;;;7340:18;;8787:31:88;7221:177:476;8737:186:88;8864:44;;-1:-1:-1;;;8864:44:88;;-1:-1:-1;;;;;21345:32:476;;8864:44:88;;;21327:51:476;21394:18;;;21387:34;;;21300:18;;8864:44:88;21153:274:476;9650:156:140;9723:4;9746:53;9754:3;-1:-1:-1;;;;;9774:23:140;;9746:7;:53::i;13097:144::-;13174:4;5006:21;;;:14;;;:21;;;;;;:26;;13197:37;4910:129;3658:625:89;3753:7;3772:21;3796:32;3810:2;3814:7;3823:4;3796:13;:32::i;:::-;3772:56;-1:-1:-1;;;;;;3843:27:89;;3839:210;;3886:40;3918:7;-1:-1:-1;;;;;;;;;;;5245:19:89;;5141:33;5216:26;;;:17;:26;;;;;:48;;;5274:26;;;;;;;;;;;;5065:242;3886:40;3839:210;;;3964:2;-1:-1:-1;;;;;3947:19:89;:13;-1:-1:-1;;;;;3947:19:89;;3943:106;;3982:56;4015:13;4030:7;3982:32;:56::i;:::-;-1:-1:-1;;;;;4062:16:89;;4058:188;;4094:45;4131:7;4094:36;:45::i;:::-;4058:188;;;4177:2;-1:-1:-1;;;;;4160:19:89;:13;-1:-1:-1;;;;;4160:19:89;;4156:90;;4195:40;4223:2;4227:7;4195:27;:40::i;9765:629:263:-;9914:42;;:::i;:::-;9977:33;9997:12;1393:19;;-1:-1:-1;1378:34:263;1283:136;9977:33;9972:105;;10033:33;;-1:-1:-1;;;10033:33:263;;;;;7367:25:476;;;7340:18;;10033:33:263;7221:177:476;9972:105:263;10091:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10091:33:263;;;;;;;;;:45;;;10086:136;;10159:52;;-1:-1:-1;;;10159:52:263;;;;;19554:25:476;;;-1:-1:-1;;;;;19615:32:476;;19595:18;;;19588:60;19527:18;;10159:52:263;19380:274:476;10086:136:263;10238:11;:149;;10332:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10332:33:263;;;;;;;;;:55;;10238:149;;;10264:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10264:33:263;;;;;;;;;:53;;10238:149;10231:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9765:629;-1:-1:-1;;;;9765:629:263:o;4578:312:87:-;4658:4;-1:-1:-1;;;;;4667:6:87;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:87;:32;-1:-1:-1;;;;;;;;;;;1519:53:109;-1:-1:-1;;;;;1519:53:109;;1441:138;4728:32:87;-1:-1:-1;;;;;4728:42:87;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:87;;;;;;;;;;;4633:251;4578:312::o;1946:145:259:-;1125:4:272;2135:11:260;;2102:72;;-1:-1:-1;;;2102:72:260;;;;;19554:25:476;;;2163:10:260;19595:18:476;;;19588:60;-1:-1:-1;;;;;2135:11:260;;;;2102:54;;19527:18:476;;2102:72:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2097:176;;2197:65;;-1:-1:-1;;;2197:65:260;;2245:10;2197:65;;;21327:51:476;21394:18;;;21387:34;;;21300:18;;2197:65:260;21153:274:476;6032:538:87;6149:17;-1:-1:-1;;;;;6131:50:87;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:87;;;;;;;;-1:-1:-1;;6131:52:87;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:87;;-1:-1:-1;;;;;1697:32:476;;6493:60:87;;;1679:51:476;1652:18;;6493:60:87;1533:203:476;6127:437:87;-1:-1:-1;;;;;;;;;;;6225:40:87;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:87;;;;;7367:25:476;;;7340:18;;6292:34:87;7221:177:476;6221:120:87;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:87;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:87;;;;;;;;;;;12240:100:88;12307:26;12317:2;12321:7;12307:26;;;;;;;;;;;;:9;:26::i;6908:1771:263:-;-1:-1:-1;;;;;7157:25:263;;7062:4;7157:25;;;:19;:25;;;;;7062:4;7289:895;7313:22;:13;:20;:22::i;:::-;7309:1;:26;7289:895;;;7356:20;7379:19;:13;7396:1;7379:16;:19::i;:::-;7417:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7417:33:263;;;;;;;;;:45;7356:42;;-1:-1:-1;7417:45:263;;7412:93;;7482:8;;;7412:93;7518:46;7567:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7567:33:263;;;;;;;;;:47;;;7628:546;7652:22;:13;:20;:22::i;:::-;7648:1;:26;7628:546;;;7699:20;7722:19;:13;7739:1;7722:16;:19::i;:::-;7699:42;;7763:4;-1:-1:-1;;;;;7763:21:263;;7785:4;7791:12;7805:6;7813:12;7827:5;7835:12;7834:13;7763:85;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;7763:85:263;;;;;;;;-1:-1:-1;;7763:85:263;;;;;;;;;;;;:::i;:::-;;;7759:401;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8093:67;7759:401;;;7941:12;:31;;;;;7969:3;7957:8;:15;;7941:31;7940:71;;;;7979:12;7978:13;:32;;;;;8002:8;7995:3;:15;;7978:32;7936:138;;;8046:5;8039:12;;;;;;;;;;;7936:138;7849:243;7759:401;-1:-1:-1;7676:3:263;;7628:546;;;;7342:842;;7289:895;7337:3;;7289:895;;;-1:-1:-1;8270:82:263;;-1:-1:-1;;;8270:82:263;;:4;;:21;;:82;;8292:4;;-1:-1:-1;;442:17:297;8311:6:263;;8327:1;;8331:5;;8338:13;;;8270:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;8270:82:263;;;;;;;;-1:-1:-1;;8270:82:263;;;;;;;;;;;;:::i;:::-;;;8266:334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8549:51;8266:334;;;8421:12;:31;;;;;8449:3;8437:8;:15;;8421:31;8420:71;;;;8459:12;8458:13;:32;;;;;8482:8;8475:3;:15;;8458:32;8416:122;;;8518:5;8511:12;;;;;;8416:122;8353:195;8266:334;-1:-1:-1;8668:4:263;;6908:1771;-1:-1:-1;;;;;;6908:1771:263:o;12190:129:140:-;12257:4;12280:32;12285:3;12305:5;12280:4;:32::i;17306:369:88:-;-1:-1:-1;;;;;;;;;;;;;;;;17468:22:88;;17464:91;;17513:31;;-1:-1:-1;;;17513:31:88;;-1:-1:-1;;;;;1697:32:476;;17513:31:88;;;1679:51:476;1652:18;;17513:31:88;1533:203:476;17464:91:88;-1:-1:-1;;;;;17564:27:88;;;;;;;:20;;;:27;;;;;;;;:37;;;;;;;;;;;;;:48;;-1:-1:-1;;17564:48:88;;;;;;;;;;17627:41;;540::476;;;17627::88;;513:18:476;17627:41:88;;;;;;;17399:276;17306:369;;;:::o;11683:273:140:-;11746:16;11774:22;11799:19;11807:3;11799:7;:19::i;10284:165::-;-1:-1:-1;;;;;10417:23:140;;10364:4;5006:21;;;:14;;;:21;;;;;;:26;;10387:55;4910:129;3916:253:124;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:124;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;993:924:123:-;-1:-1:-1;;;;;1173:14:123;;;:18;1169:742;;1211:67;;-1:-1:-1;;;1211:67:123;;-1:-1:-1;;;;;1211:36:123;;;;;:67;;1248:8;;1258:4;;1264:7;;1273:4;;1211:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1211:67:123;;;;;;;;-1:-1:-1;;1211:67:123;;;;;;;;;;;;:::i;:::-;;;1207:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:6;:13;1585:1;1568:18;1564:323;;1672:39;;-1:-1:-1;;;1672:39:123;;-1:-1:-1;;;;;1697:32:476;;1672:39:123;;;1679:51:476;1652:18;;1672:39:123;1533:203:476;1564:323:123;1839:6;1833:13;1824:6;1820:2;1816:15;1809:38;1207:694;-1:-1:-1;;;;;;1325:51:123;;-1:-1:-1;;;1325:51:123;1321:182;;1445:39;;-1:-1:-1;;;1445:39:123;;-1:-1:-1;;;;;1697:32:476;;1445:39:123;;;1679:51:476;1652:18;;1445:39:123;1533:203:476;5951:358:263;6095:11;6126;6122:181;;;6160:46;;-1:-1:-1;;;6160:46:263;;-1:-1:-1;;;;;21345:32:476;;;6160:46:263;;;21327:51:476;21394:18;;;21387:34;;;6160:33:263;;;;;21300:18:476;;6160:46:263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6153:53;;;;6122:181;6244:48;;-1:-1:-1;;;6244:48:263;;-1:-1:-1;;;;;21345:32:476;;;6244:48:263;;;21327:51:476;21394:18;;;21387:34;;;6244:35:263;;;;;21300:18:476;;6244:48:263;21153:274:476;8966:444:263;9113:42;;:::i;:::-;9188:61;9223:4;9229:6;9237:11;9188:34;:61::i;:::-;9171:78;;9263:23;:14;:21;:23::i;:::-;9259:145;;;9319:74;9359:12;9373:6;9381:11;9319:39;:74::i;34380:314:137:-;34436:6;-1:-1:-1;;;;;34557:5:137;:33;34553:105;;;34613:34;;-1:-1:-1;;;34613:34:137;;;;;7367:25:476;;;7340:18;;34613:34:137;7221:177:476;34553:105:137;-1:-1:-1;34681:5:137;34380:314::o;17171:193::-;17227:7;17258:1;17250:5;:9;17246:81;;;17282:34;;-1:-1:-1;;;17282:34:137;;;;;7367:25:476;;;7340:18;;17282:34:137;7221:177:476;9071:205:86;9129:30;;3147:66;9186:27;8819:122;2232:149:88;6929:20:86;:18;:20::i;:::-;2335:39:88::1;2359:5;2366:7;2335:23;:39::i;2115:68:89:-:0;6929:20:86;:18;:20::i;2097:190:259:-;2157:13;2243:31;2260:13;2243:16;:31::i;:::-;2189:91;;;;;;;;:::i;:::-;;;;;;;;;;;;;2182:98;;2097:190;:::o;1308:632:133:-;1364:13;1413:14;1430:17;1441:5;1430:10;:17::i;:::-;1450:1;1430:21;1413:38;;1465:20;1499:6;-1:-1:-1;;;;;1488:18:133;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1488:18:133;-1:-1:-1;1465:41:133;-1:-1:-1;1595:28:133;;;1611:2;1595:28;1650:247;-1:-1:-1;;1681:5:133;-1:-1:-1;;;1780:2:133;1769:14;;1764:32;1681:5;1751:46;1841:2;1832:11;;;-1:-1:-1;1861:21:133;1650:247;1861:21;-1:-1:-1;1917:6:133;1308:632;-1:-1:-1;;;1308:632:133:o;12487:135:140:-;12557:4;12580:35;12588:3;12608:5;12580:7;:35::i;9332:150::-;9402:4;9425:50;9430:3;-1:-1:-1;;;;;9450:23:140;;9425:4;:50::i;7084:172:88:-;7150:7;7231:18;;;:9;:18;;;;;;-1:-1:-1;;;;;7231:18:88;;7084:172::o;16378:719::-;-1:-1:-1;;;;;;;;;;;16593:9:88;;:31;;-1:-1:-1;;;;;;16606:18:88;;;;16593:31;16589:460;;;16640:13;16656:22;16670:7;16656:13;:22::i;:::-;16640:38;-1:-1:-1;;;;;;16806:18:88;;;;;;:35;;;16837:4;-1:-1:-1;;;;;16828:13:88;:5;-1:-1:-1;;;;;16828:13:88;;;16806:35;:69;;;;;16846:29;16863:5;16870:4;16846:16;:29::i;:::-;16845:30;16806:69;16802:142;;;16902:27;;-1:-1:-1;;;16902:27:88;;-1:-1:-1;;;;;1697:32:476;;16902:27:88;;;1679:51:476;1652:18;;16902:27:88;1533:203:476;16802:142:88;16962:9;16958:81;;;17016:7;17012:2;-1:-1:-1;;;;;16996:28:88;17005:5;-1:-1:-1;;;;;16996:28:88;;;;;;;;;;;16958:81;16626:423;16589:460;17059:26;;;;:17;;:26;;-1:-1:-1;;17059:26:88;;;:31;;-1:-1:-1;;;;;;17059:31:88;-1:-1:-1;;;;;17059:31:88;;;;;;;;;;16378:719::o;7867:272::-;7970:4;-1:-1:-1;;;;;8005:21:88;;;;;;:127;;;8052:7;-1:-1:-1;;;;;8043:16:88;:5;-1:-1:-1;;;;;8043:16:88;;:52;;;;8063:32;8080:5;8087:7;8063:16;:32::i;:::-;8043:88;;;;8124:7;-1:-1:-1;;;;;8099:32:88;:21;8112:7;8099:12;:21::i;:::-;-1:-1:-1;;;;;8099:32:88;;7986:146;7867:272;-1:-1:-1;;;;7867:272:88:o;2910:1368:140:-;2976:4;3105:21;;;:14;;;:21;;;;;;3141:13;;3137:1135;;3508:18;3529:12;3540:1;3529:8;:12;:::i;:::-;3575:18;;3508:33;;-1:-1:-1;3555:17:140;;3575:22;;3596:1;;3575:22;:::i;:::-;3555:42;;3630:9;3616:10;:23;3612:378;;3659:17;3679:3;:11;;3691:9;3679:22;;;;;;;;:::i;:::-;;;;;;;;;3659:42;;3826:9;3800:3;:11;;3812:10;3800:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3939:25;;;:14;;;:25;;;;;:36;;;3612:378;4068:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4171:3;:14;;:21;4186:5;4171:21;;;;;;;;;;;4164:28;;;4214:4;4207:11;;;;;;;3137:1135;4256:5;4249:12;;;;;10384:856:88;10470:7;-1:-1:-1;;;;;;;;;;;10470:7:88;10559:17;10568:7;10559:8;:17::i;:::-;10544:32;-1:-1:-1;;;;;;10636:18:88;;;10632:86;;10670:37;10687:4;10693;10699:7;10670:16;:37::i;:::-;-1:-1:-1;;;;;10762:18:88;;;10758:258;;10878:48;10895:1;10899:7;10916:1;10920:5;10878:8;:48::i;:::-;-1:-1:-1;;;;;10969:17:88;;;;;;:11;;;:17;;;;;:22;;-1:-1:-1;;10969:22:88;;;10758:258;-1:-1:-1;;;;;11030:16:88;;;11026:109;;-1:-1:-1;;;;;11090:15:88;;;;;;:11;;;:15;;;;;:20;;11109:1;11090:20;;;11026:109;11145:18;;;;:9;;;:18;;;;;;:23;;-1:-1:-1;;;;;;11145:23:88;-1:-1:-1;;;;;11145:23:88;;;;;;;;;11184:27;;11145:18;;11184:27;;;;;;;11229:4;10384:856;-1:-1:-1;;;;;10384:856:88:o;5924:1138:89:-;-1:-1:-1;;;;;;;;;;;6015:33:89;6286:15;6296:4;6286:9;:15::i;:::-;6311:18;6332:28;;;:19;;;:28;;;;;;;;;-1:-1:-1;;;;;6435:20:89;;;;;;;;;;;6261:40;;-1:-1:-1;6332:28:89;6559;;;6555:327;;6603:19;6625:35;;;;;;;;;;;;6675:31;;;;;;:45;;;6792:32;;:19;;;:32;;;;;:45;;;6555:327;6975:28;;;;:19;;;;:28;;;;;;;;6968:35;;;7020;;;;;;;;;7013:42;;;;-1:-1:-1;;5924:1138:89:o;7350:1150::-;-1:-1:-1;;;;;;;;;;;7699:19:89;-1:-1:-1;;;;;;;;;;;1720:31:89;7431:33;;7699:23;;7721:1;;7699:23;:::i;:::-;7732:18;7753:26;;;:17;;;:26;;;;;;8123:12;;;:28;;7674:48;;-1:-1:-1;7753:26:89;;7674:48;;8123:28;;;;;;:::i;:::-;;;;;;;;;8101:50;;8189:11;8162:1;:12;;8175:10;8162:24;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;8268:30;;;:17;;;:30;;;;;;;:43;;;8439:26;;;;;8432:33;8475:12;;;:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;7421:1079;;;;7350:1150;:::o;4577:293::-;-1:-1:-1;;;;;;;;;;;4661:33:89;4769:1;4753:13;4763:2;4753:9;:13::i;:::-;:17;;;;:::i;:::-;-1:-1:-1;;;;;4780:18:89;;;:14;:18;;;;;;;;;;;:26;;;;;;;;:36;;;4826:28;;;:19;;;;:28;;;-1:-1:-1;4826:28:89;:37;4577:293::o;2264:344:109:-;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:109;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;12561:207:88:-;12655:18;12661:2;12665:7;12655:5;:18::i;:::-;12683:78;966:10:90;12739:1:88;12743:2;12747:7;12756:4;12683:33;:78::i;13322:112:140:-;13382:7;13408:19;13416:3;5202:18;;5120:107;13776:135;13847:7;13881:22;13885:3;13897:5;13881:3;:22::i;2336:406::-;2399:4;5006:21;;;:14;;;:21;;;;;;2415:321;;-1:-1:-1;2457:23:140;;;;;;;;:11;:23;;;;;;;;;;;;;2639:18;;2615:21;;;:14;;;:21;;;;;;:42;;;;2671:11;;2415:321;-1:-1:-1;2720:5:140;2713:12;;6227:109;6283:16;6318:3;:11;;6311:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6227:109;;;:::o;4437:582:124:-;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;:::-;4605:408;;;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:124;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:124;;-1:-1:-1;;;;;1697:32:476;;4933:24:124;;;1679:51:476;1652:18;;4933:24:124;1533:203:476;4853:119:124;-1:-1:-1;4992:10:124;4985:17;;9416:343:263;9552:42;;:::i;:::-;9617:11;:135;;9704:48;;-1:-1:-1;;;9704:48:263;;-1:-1:-1;;;;;1697:32:476;;;9704:48:263;;;1679:51:476;9704:42:263;;;;;1652:18:476;;9704:48:263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9617:135::-;9643:46;;-1:-1:-1;;;9643:46:263;;-1:-1:-1;;;;;1697:32:476;;;9643:46:263;;;1679:51:476;9643:40:263;;;;;1652:18:476;;9643:46:263;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1885:206:300:-;1981:13;;1958:4;;1981:18;:40;;;;-1:-1:-1;2003:13:300;;;;:18;1981:40;:60;;;;-1:-1:-1;2025:11:300;;;;:16;1981:60;:80;;;;-1:-1:-1;2045:11:300;;;;:16;1981:80;:103;;;;-1:-1:-1;;2065:14:300;;;:19;;1885:206::o;7082:141:86:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:86;;;;;;;;;;;2387:219:88;6929:20:86;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;2076:21:88;2555:15:::1;2565:5:::0;2076:21;2555:15:::1;:::i;:::-;-1:-1:-1::0;2580:9:88::1;::::0;::::1;:19;2592:7:::0;2580:9;:19:::1;:::i;29154:916:136:-:0;29207:7;;-1:-1:-1;;;29282:17:136;;29278:103;;-1:-1:-1;;;29319:17:136;;;-1:-1:-1;29364:2:136;29354:12;29278:103;29407:8;29398:5;:17;29394:103;;29444:8;29435:17;;;-1:-1:-1;29480:2:136;29470:12;29394:103;29523:8;29514:5;:17;29510:103;;29560:8;29551:17;;;-1:-1:-1;29596:2:136;29586:12;29510:103;29639:7;29630:5;:16;29626:100;;29675:7;29666:16;;;-1:-1:-1;29710:1:136;29700:11;29626:100;29752:7;29743:5;:16;29739:100;;29788:7;29779:16;;;-1:-1:-1;29823:1:136;29813:11;29739:100;29865:7;29856:5;:16;29852:100;;29901:7;29892:16;;;-1:-1:-1;29936:1:136;29926:11;29852:100;29978:7;29969:5;:16;29965:66;;30015:1;30005:11;30057:6;29154:916;-1:-1:-1;;29154:916:136:o;1671:281:109:-;1748:17;-1:-1:-1;;;;;1748:29:109;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:109;;-1:-1:-1;;;;;1697:32:476;;1805:47:109;;;1679:51:476;1652:18;;1805:47:109;1533:203:476;1744:119:109;-1:-1:-1;;;;;;;;;;;1872:73:109;;-1:-1:-1;;;;;;1872:73:109;-1:-1:-1;;;;;1872:73:109;;;;;;;;;;1671:281::o;6113:122::-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:109;;;;;;;;;;;11562:327:88;-1:-1:-1;;;;;11629:16:88;;11625:87;;11668:33;;-1:-1:-1;;;11668:33:88;;11698:1;11668:33;;;1679:51:476;1652:18;;11668:33:88;1533:203:476;11625:87:88;11721:21;11745:32;11753:2;11757:7;11774:1;11745:7;:32::i;:::-;11721:56;-1:-1:-1;;;;;;11791:27:88;;;11787:96;;11841:31;;-1:-1:-1;;;11841:31:88;;11869:1;11841:31;;;1679:51:476;1652:18;;11841:31:88;1533:203:476;5569:118:140;5636:7;5662:3;:11;;5674:5;5662:18;;;;;;;;:::i;:::-;;;;;;;;;5655:25;;5569:118;;;;:::o;5559:487:124:-;5690:17;;:21;5686:354;;5887:10;5881:17;5943:15;5930:10;5926:2;5922:19;5915:44;5686:354;6010:19;;-1:-1:-1;;;6010:19:124;;;;;;;;;;;5686:354;5559:487;:::o;8485:120:86:-;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:86;;;;;;-1:-1:-1;8485:120:86:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:476;-1:-1:-1;;;;;;88:32:476;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:476;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:476;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:476:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:476;;1348:180;-1:-1:-1;1348:180:476:o;1741:131::-;-1:-1:-1;;;;;1816:31:476;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:476:o;2197:127::-;2258:10;2253:3;2249:20;2246:1;2239:31;2289:4;2286:1;2279:15;2313:4;2310:1;2303:15;2329:253;2401:2;2395:9;2443:4;2431:17;;-1:-1:-1;;;;;2463:34:476;;2499:22;;;2460:62;2457:88;;;2525:18;;:::i;:::-;2561:2;2554:22;2329:253;:::o;2587:275::-;2658:2;2652:9;2723:2;2704:13;;-1:-1:-1;;2700:27:476;2688:40;;-1:-1:-1;;;;;2743:34:476;;2779:22;;;2740:62;2737:88;;;2805:18;;:::i;:::-;2841:2;2834:22;2587:275;;-1:-1:-1;2587:275:476:o;2867:183::-;2927:4;-1:-1:-1;;;;;2952:6:476;2949:30;2946:56;;;2982:18;;:::i;:::-;-1:-1:-1;3027:1:476;3023:14;3039:4;3019:25;;2867:183::o;3055:1191::-;3173:6;3181;3189;3242:2;3230:9;3221:7;3217:23;3213:32;3210:52;;;3258:1;3255;3248:12;3210:52;3294:9;3281:23;3271:33;;3323:2;3375;3364:9;3360:18;3347:32;3388:31;3413:5;3388:31;:::i;:::-;3438:5;-1:-1:-1;3494:2:476;3479:18;;3466:32;-1:-1:-1;;;;;3510:30:476;;3507:50;;;3553:1;3550;3543:12;3507:50;3576:22;;3629:4;3621:13;;3617:27;-1:-1:-1;3607:55:476;;3658:1;3655;3648:12;3607:55;3694:2;3681:16;3717:60;3733:43;3773:2;3733:43;:::i;:::-;3717:60;:::i;:::-;3811:15;;;3893:1;3889:10;;;;3881:19;;3877:28;;;3842:12;;;;3917:19;;;3914:39;;;3949:1;3946;3939:12;3914:39;3973:11;;;;3993:223;4009:6;4004:3;4001:15;3993:223;;;4091:3;4078:17;4108:33;4133:7;4108:33;:::i;:::-;4154:20;;4026:12;;;;4194;;;;3993:223;;;4235:5;4225:15;;;;;;;3055:1191;;;;;:::o;4251:750::-;4312:5;4365:3;4358:4;4350:6;4346:17;4342:27;4332:55;;4383:1;4380;4373:12;4332:55;4419:6;4406:20;4445:4;4469:60;4485:43;4525:2;4485:43;:::i;4469:60::-;4551:3;4575:2;4570:3;4563:15;4603:4;4598:3;4594:14;4587:21;;4660:4;4654:2;4651:1;4647:10;4639:6;4635:23;4631:34;4617:48;;4688:3;4680:6;4677:15;4674:35;;;4705:1;4702;4695:12;4674:35;4741:4;4733:6;4729:17;4755:217;4771:6;4766:3;4763:15;4755:217;;;4851:3;4838:17;4868:31;4893:5;4868:31;:::i;:::-;4912:18;;4950:12;;;;4788;;4755:217;;;-1:-1:-1;4990:5:476;4251:750;-1:-1:-1;;;;;;4251:750:476:o;5006:1172::-;5080:5;5133:3;5126:4;5118:6;5114:17;5110:27;5100:55;;5151:1;5148;5141:12;5100:55;5187:6;5174:20;5213:4;5237:60;5253:43;5293:2;5253:43;:::i;5237:60::-;5331:15;;;5393:4;5436:13;;;5424:26;;5420:35;;;5362:12;;;;5319:3;5467:15;;;5464:35;;;5495:1;5492;5485:12;5464:35;5531:2;5523:6;5519:15;5543:606;5559:6;5554:3;5551:15;5543:606;;;5635:2;5629:3;5624;5620:13;5616:22;5613:42;;;5651:1;5648;5641:12;5613:42;5681:22;;:::i;:::-;5730:17;;5716:32;;5797:12;;;5784:26;5768:14;;;5761:50;5834:2;5885:12;;;5872:26;5856:14;;;5849:50;5922:2;5973:12;;;5960:26;5944:14;;;5937:50;6010:3;6062:12;;;6049:26;6033:14;;;6026:50;6089:18;;6127:12;;;;5576;;5543:606;;;-1:-1:-1;6167:5:476;;5006:1172;-1:-1:-1;;;;;;;5006:1172:476:o;6183:1033::-;6440:6;6448;6456;6464;6517:3;6505:9;6496:7;6492:23;6488:33;6485:53;;;6534:1;6531;6524:12;6485:53;6570:9;6557:23;6547:33;;6631:2;6620:9;6616:18;6603:32;-1:-1:-1;;;;;6695:2:476;6687:6;6684:14;6681:34;;;6711:1;6708;6701:12;6681:34;6734:68;6794:7;6785:6;6774:9;6770:22;6734:68;:::i;:::-;6724:78;;6855:2;6844:9;6840:18;6827:32;6811:48;;6884:2;6874:8;6871:16;6868:36;;;6900:1;6897;6890:12;6868:36;6923:83;6998:7;6987:8;6976:9;6972:24;6923:83;:::i;:::-;6913:93;;7059:2;7048:9;7044:18;7031:32;7015:48;;7088:2;7078:8;7075:16;7072:36;;;7104:1;7101;7094:12;7072:36;;7127:83;7202:7;7191:8;7180:9;7176:24;7127:83;:::i;:::-;7117:93;;;6183:1033;;;;;;;:::o;7403:456::-;7480:6;7488;7496;7549:2;7537:9;7528:7;7524:23;7520:32;7517:52;;;7565:1;7562;7555:12;7517:52;7604:9;7591:23;7623:31;7648:5;7623:31;:::i;:::-;7673:5;-1:-1:-1;7730:2:476;7715:18;;7702:32;7743:33;7702:32;7743:33;:::i;:::-;7403:456;;7795:7;;-1:-1:-1;;;7849:2:476;7834:18;;;;7821:32;;7403:456::o;7864:683::-;7975:6;7983;7991;7999;8007;8060:3;8048:9;8039:7;8035:23;8031:33;8028:53;;;8077:1;8074;8067:12;8028:53;8116:9;8103:23;8135:31;8160:5;8135:31;:::i;:::-;8185:5;-1:-1:-1;8237:2:476;8222:18;;8209:32;;-1:-1:-1;8293:2:476;8278:18;;8265:32;8306:33;8265:32;8306:33;:::i;:::-;8358:7;-1:-1:-1;8417:2:476;8402:18;;8389:32;8430:33;8389:32;8430:33;:::i;:::-;7864:683;;;;-1:-1:-1;7864:683:476;;8536:3;8521:19;8508:33;;7864:683;-1:-1:-1;;7864:683:476:o;8552:331::-;8636:6;8644;8697:2;8685:9;8676:7;8672:23;8668:32;8665:52;;;8713:1;8710;8703:12;8665:52;8749:9;8736:23;8726:33;;8809:2;8798:9;8794:18;8781:32;8822:31;8847:5;8822:31;:::i;:::-;8872:5;8862:15;;;8552:331;;;;;:::o;9222:290::-;9436:3;9421:19;;9449:57;9425:9;9488:6;8980:5;8974:12;8969:3;8962:25;9036:4;9029:5;9025:16;9019:23;9012:4;9007:3;9003:14;8996:47;9092:4;9085:5;9081:16;9075:23;9068:4;9063:3;9059:14;9052:47;9148:4;9141:5;9137:16;9131:23;9124:4;9119:3;9115:14;9108:47;9204:4;9197:5;9193:16;9187:23;9180:4;9175:3;9171:14;9164:47;;;8888:329;9517:530;9559:5;9612:3;9605:4;9597:6;9593:17;9589:27;9579:55;;9630:1;9627;9620:12;9579:55;9666:6;9653:20;-1:-1:-1;;;;;9688:2:476;9685:26;9682:52;;;9714:18;;:::i;:::-;9758:55;9801:2;9782:13;;-1:-1:-1;;9778:27:476;9807:4;9774:38;9758:55;:::i;:::-;9838:2;9829:7;9822:19;9884:3;9877:4;9872:2;9864:6;9860:15;9856:26;9853:35;9850:55;;;9901:1;9898;9891:12;9850:55;9966:2;9959:4;9951:6;9947:17;9940:4;9931:7;9927:18;9914:55;10014:1;9989:16;;;10007:4;9985:27;9978:38;;;;9993:7;9517:530;-1:-1:-1;;;9517:530:476:o;10052:455::-;10129:6;10137;10190:2;10178:9;10169:7;10165:23;10161:32;10158:52;;;10206:1;10203;10196:12;10158:52;10245:9;10232:23;10264:31;10289:5;10264:31;:::i;:::-;10314:5;-1:-1:-1;10370:2:476;10355:18;;10342:32;-1:-1:-1;;;;;10386:30:476;;10383:50;;;10429:1;10426;10419:12;10383:50;10452:49;10493:7;10484:6;10473:9;10469:22;10452:49;:::i;:::-;10442:59;;;10052:455;;;;;:::o;10694:541::-;10796:6;10804;10812;10820;10873:3;10861:9;10852:7;10848:23;10844:33;10841:53;;;10890:1;10887;10880:12;10841:53;10929:9;10916:23;10948:31;10973:5;10948:31;:::i;:::-;10998:5;-1:-1:-1;11050:2:476;11035:18;;11022:32;;-1:-1:-1;11106:2:476;11091:18;;11078:32;11119:33;11078:32;11119:33;:::i;:::-;10694:541;;;;-1:-1:-1;11171:7:476;;11225:2;11210:18;11197:32;;-1:-1:-1;;10694:541:476:o;11240:247::-;11299:6;11352:2;11340:9;11331:7;11327:23;11323:32;11320:52;;;11368:1;11365;11358:12;11320:52;11407:9;11394:23;11426:31;11451:5;11426:31;:::i;11492:1026::-;11585:6;11593;11646:2;11634:9;11625:7;11621:23;11617:32;11614:52;;;11662:1;11659;11652:12;11614:52;11701:9;11688:23;11720:31;11745:5;11720:31;:::i;:::-;11770:5;-1:-1:-1;11794:2:476;11832:18;;;11819:32;-1:-1:-1;;;;;11863:30:476;;11860:50;;;11906:1;11903;11896:12;11860:50;11929:22;;11982:4;11974:13;;11970:27;-1:-1:-1;11960:55:476;;12011:1;12008;12001:12;11960:55;12047:2;12034:16;12070:60;12086:43;12126:2;12086:43;:::i;12070:60::-;12164:15;;;12246:1;12242:10;;;;12234:19;;12230:28;;;12195:12;;;;12270:19;;;12267:39;;;12302:1;12299;12292:12;12267:39;12326:11;;;;12346:142;12362:6;12357:3;12354:15;12346:142;;;12428:17;;12416:30;;12379:12;;;;12466;;;;12346:142;;;12507:5;12497:15;;;;;;;11492:1026;;;;;:::o;12523:439::-;12632:6;12640;12693:2;12681:9;12672:7;12668:23;12664:32;12661:52;;;12709:1;12706;12699:12;12661:52;12745:9;12732:23;12722:33;;12806:2;12795:9;12791:18;12778:32;-1:-1:-1;;;;;12825:6:476;12822:30;12819:50;;;12865:1;12862;12855:12;12819:50;12888:68;12948:7;12939:6;12928:9;12924:22;12888:68;:::i;12967:118::-;13053:5;13046:13;13039:21;13032:5;13029:32;13019:60;;13075:1;13072;13065:12;13090:382;13155:6;13163;13216:2;13204:9;13195:7;13191:23;13187:32;13184:52;;;13232:1;13229;13222:12;13184:52;13271:9;13258:23;13290:31;13315:5;13290:31;:::i;:::-;13340:5;-1:-1:-1;13397:2:476;13382:18;;13369:32;13410:30;13369:32;13410:30;:::i;13477:614::-;13579:6;13587;13595;13603;13656:3;13644:9;13635:7;13631:23;13627:33;13624:53;;;13673:1;13670;13663:12;13624:53;13712:9;13699:23;13731:31;13756:5;13731:31;:::i;:::-;13781:5;-1:-1:-1;13833:2:476;13818:18;;13805:32;;-1:-1:-1;13889:2:476;13874:18;;13861:32;13902:33;13861:32;13902:33;:::i;:::-;13954:7;-1:-1:-1;14013:2:476;13998:18;;13985:32;14026:33;13985:32;14026:33;:::i;:::-;13477:614;;;;-1:-1:-1;13477:614:476;;-1:-1:-1;;13477:614:476:o;14096:626::-;14193:6;14201;14254:2;14242:9;14233:7;14229:23;14225:32;14222:52;;;14270:1;14267;14260:12;14222:52;14310:9;14297:23;-1:-1:-1;;;;;14380:2:476;14372:6;14369:14;14366:34;;;14396:1;14393;14386:12;14366:34;14434:6;14423:9;14419:22;14409:32;;14479:7;14472:4;14468:2;14464:13;14460:27;14450:55;;14501:1;14498;14491:12;14450:55;14541:2;14528:16;14567:2;14559:6;14556:14;14553:34;;;14583:1;14580;14573:12;14553:34;14636:7;14631:2;14621:6;14618:1;14614:14;14610:2;14606:23;14602:32;14599:45;14596:65;;;14657:1;14654;14647:12;14596:65;14688:2;14680:11;;;;;14710:6;;-1:-1:-1;14096:626:476;;-1:-1:-1;;;;14096:626:476:o;14727:801::-;14887:4;14916:2;14956;14945:9;14941:18;14986:2;14975:9;14968:21;15009:6;15044;15038:13;15075:6;15067;15060:22;15113:2;15102:9;15098:18;15091:25;;15175:2;15165:6;15162:1;15158:14;15147:9;15143:30;15139:39;15125:53;;15213:2;15205:6;15201:15;15234:1;15244:255;15258:6;15255:1;15252:13;15244:255;;;15351:2;15347:7;15335:9;15327:6;15323:22;15319:36;15314:3;15307:49;15379:40;15412:6;15403;15397:13;15379:40;:::i;:::-;15369:50;-1:-1:-1;15477:12:476;;;;15442:15;;;;15280:1;15273:9;15244:255;;;-1:-1:-1;15516:6:476;;14727:801;-1:-1:-1;;;;;;;14727:801:476:o;15533:665::-;15628:6;15636;15644;15652;15705:3;15693:9;15684:7;15680:23;15676:33;15673:53;;;15722:1;15719;15712:12;15673:53;15761:9;15748:23;15780:31;15805:5;15780:31;:::i;:::-;15830:5;-1:-1:-1;15887:2:476;15872:18;;15859:32;15900:33;15859:32;15900:33;:::i;:::-;15952:7;-1:-1:-1;16006:2:476;15991:18;;15978:32;;-1:-1:-1;16061:2:476;16046:18;;16033:32;-1:-1:-1;;;;;16077:30:476;;16074:50;;;16120:1;16117;16110:12;16074:50;16143:49;16184:7;16175:6;16164:9;16160:22;16143:49;:::i;16203:632::-;16374:2;16426:21;;;16496:13;;16399:18;;;16518:22;;;16345:4;;16374:2;16597:15;;;;16571:2;16556:18;;;16345:4;16640:169;16654:6;16651:1;16648:13;16640:169;;;16715:13;;16703:26;;16784:15;;;;16749:12;;;;16676:1;16669:9;16640:169;;;-1:-1:-1;16826:3:476;;16203:632;-1:-1:-1;;;;;;16203:632:476:o;16840:819::-;16957:6;16965;16973;16981;16989;16997;17050:3;17038:9;17029:7;17025:23;17021:33;17018:53;;;17067:1;17064;17057:12;17018:53;17106:9;17093:23;17125:31;17150:5;17125:31;:::i;:::-;17175:5;-1:-1:-1;17227:2:476;17212:18;;17199:32;;-1:-1:-1;17283:2:476;17268:18;;17255:32;17296:33;17255:32;17296:33;:::i;:::-;17348:7;-1:-1:-1;17407:2:476;17392:18;;17379:32;17420:33;17379:32;17420:33;:::i;:::-;17472:7;-1:-1:-1;17526:3:476;17511:19;;17498:33;;-1:-1:-1;17583:3:476;17568:19;;17555:33;17597:30;17555:33;17597:30;:::i;:::-;17646:7;17636:17;;;16840:819;;;;;;;;:::o;17939:658::-;18110:2;18162:21;;;18232:13;;18135:18;;;18254:22;;;18081:4;;18110:2;18333:15;;;;18307:2;18292:18;;;18081:4;18376:195;18390:6;18387:1;18384:13;18376:195;;;18455:13;;-1:-1:-1;;;;;18451:39:476;18439:52;;18546:15;;;;18511:12;;;;18487:1;18405:9;18376:195;;18602:388;18670:6;18678;18731:2;18719:9;18710:7;18706:23;18702:32;18699:52;;;18747:1;18744;18737:12;18699:52;18786:9;18773:23;18805:31;18830:5;18805:31;:::i;:::-;18855:5;-1:-1:-1;18912:2:476;18897:18;;18884:32;18925:33;18884:32;18925:33;:::i;18995:380::-;19074:1;19070:12;;;;19117;;;19138:61;;19192:4;19184:6;19180:17;19170:27;;19138:61;19245:2;19237:6;19234:14;19214:18;19211:38;19208:161;;19291:10;19286:3;19282:20;19279:1;19272:31;19326:4;19323:1;19316:15;19354:4;19351:1;19344:15;19208:161;;18995:380;;;:::o;19659:127::-;19720:10;19715:3;19711:20;19708:1;19701:31;19751:4;19748:1;19741:15;19775:4;19772:1;19765:15;19791:245;19858:6;19911:2;19899:9;19890:7;19886:23;19882:32;19879:52;;;19927:1;19924;19917:12;19879:52;19959:9;19953:16;19978:28;20000:5;19978:28;:::i;20294:474::-;20616:3;20601:19;;20629:57;20605:9;20668:6;8980:5;8974:12;8969:3;8962:25;9036:4;9029:5;9025:16;9019:23;9012:4;9007:3;9003:14;8996:47;9092:4;9085:5;9081:16;9075:23;9068:4;9063:3;9059:14;9052:47;9148:4;9141:5;9137:16;9131:23;9124:4;9119:3;9115:14;9108:47;9204:4;9197:5;9193:16;9187:23;9180:4;9175:3;9171:14;9164:47;;;8888:329;20629:57;8974:12;;20757:3;20742:19;;8962:25;9036:4;9025:16;;9019:23;9003:14;;;8996:47;9092:4;9081:16;;9075:23;9059:14;;;9052:47;9148:4;9137:16;;9131:23;9115:14;;;9108:47;9204:4;9193:16;;9187:23;9171:14;;;9164:47;20695:67;8888:329;21432:127;21493:10;21488:3;21484:20;21481:1;21474:31;21524:4;21521:1;21514:15;21548:4;21545:1;21538:15;21564:135;21603:3;21624:17;;;21621:43;;21644:18;;:::i;:::-;-1:-1:-1;21691:1:476;21680:13;;21564:135::o;21704:128::-;21771:9;;;21792:11;;;21789:37;;;21806:18;;:::i;22173:521::-;22250:4;22256:6;22316:11;22303:25;22410:2;22406:7;22395:8;22379:14;22375:29;22371:43;22351:18;22347:68;22337:96;;22429:1;22426;22419:12;22337:96;22456:33;;22508:20;;;-1:-1:-1;;;;;;22540:30:476;;22537:50;;;22583:1;22580;22573:12;22537:50;22616:4;22604:17;;-1:-1:-1;22647:14:476;22643:27;;;22633:38;;22630:58;;;22684:1;22681;22674:12;22630:58;22173:521;;;;;:::o;22699:440::-;22928:6;22920;22915:3;22902:33;22884:3;22963:6;22958:3;22954:16;22990:1;22986:2;22979:13;23021:6;23015:13;23037:65;23095:6;23091:2;23084:4;23076:6;23072:17;23037:65;:::i;:::-;23118:15;;22699:440;-1:-1:-1;;;;;22699:440:476:o;23848:216::-;23912:9;;;23940:11;;;23887:3;23970:9;;23998:10;;23994:19;;24023:10;;24015:19;;23991:44;23988:70;;;24038:18;;:::i;24283:496::-;24462:3;24500:6;24494:13;24516:66;24575:6;24570:3;24563:4;24555:6;24551:17;24516:66;:::i;:::-;24645:13;;24604:16;;;;24667:70;24645:13;24604:16;24714:4;24702:17;;24667:70;:::i;:::-;24753:20;;24283:496;-1:-1:-1;;;;24283:496:476:o;25342:184::-;25412:6;25465:2;25453:9;25444:7;25440:23;25436:32;25433:52;;;25481:1;25478;25471:12;25433:52;-1:-1:-1;25504:16:476;;25342:184;-1:-1:-1;25342:184:476:o;25531:626::-;-1:-1:-1;;;;;25884:15:476;;;25866:34;;25931:2;25916:18;;25909:34;;;;25979:15;;;25974:2;25959:18;;25952:43;26031:15;;26026:2;26011:18;;26004:43;26078:3;26063:19;;26056:35;;;;26135:14;;26128:22;25846:3;26107:19;;26100:51;25815:3;25800:19;;25531:626::o;26351:287::-;26480:3;26518:6;26512:13;26534:66;26593:6;26588:3;26581:4;26573:6;26569:17;26534:66;:::i;:::-;26616:16;;;;;26351:287;-1:-1:-1;;26351:287:476:o;26643:489::-;-1:-1:-1;;;;;26912:15:476;;;26894:34;;26964:15;;26959:2;26944:18;;26937:43;27011:2;26996:18;;26989:34;;;27059:3;27054:2;27039:18;;27032:31;;;26837:4;;27080:46;;27106:19;;27098:6;27080:46;:::i;27137:249::-;27206:6;27259:2;27247:9;27238:7;27234:23;27230:32;27227:52;;;27275:1;27272;27265:12;27227:52;27307:9;27301:16;27326:30;27350:5;27326:30;:::i;27571:643::-;27923:34;27918:3;27911:47;-1:-1:-1;;;27983:2:476;27978:3;27974:12;27967:28;27893:3;28024:6;28018:13;28040:73;28106:6;28101:2;28096:3;28092:12;28087:2;28079:6;28075:15;28040:73;:::i;:::-;-1:-1:-1;;;28172:2:476;28132:16;;;;28164:11;;;28157:24;-1:-1:-1;28205:2:476;28197:11;;27571:643;-1:-1:-1;27571:643:476:o;28351:127::-;28412:10;28407:3;28403:20;28400:1;28393:31;28443:4;28440:1;28433:15;28467:4;28464:1;28457:15;28483:532;28593:6;28646:3;28634:9;28625:7;28621:23;28617:33;28614:53;;;28663:1;28660;28653:12;28614:53;28689:22;;:::i;:::-;28740:9;28734:16;28727:5;28720:31;28804:2;28793:9;28789:18;28783:25;28778:2;28771:5;28767:14;28760:49;28862:2;28851:9;28847:18;28841:25;28836:2;28829:5;28825:14;28818:49;28920:2;28909:9;28905:18;28899:25;28894:2;28887:5;28883:14;28876:49;28979:3;28968:9;28964:19;28958:26;28952:3;28945:5;28941:15;28934:51;29004:5;28994:15;;;28483:532;;;;:::o;29146:518::-;29248:2;29243:3;29240:11;29237:421;;;29284:5;29281:1;29274:16;29328:4;29325:1;29315:18;29398:2;29386:10;29382:19;29379:1;29375:27;29369:4;29365:38;29434:4;29422:10;29419:20;29416:47;;;-1:-1:-1;29457:4:476;29416:47;29512:2;29507:3;29503:12;29500:1;29496:20;29490:4;29486:31;29476:41;;29567:81;29585:2;29578:5;29575:13;29567:81;;;29644:1;29630:16;;29611:1;29600:13;29567:81;;29840:1345;29966:3;29960:10;-1:-1:-1;;;;;29985:6:476;29982:30;29979:56;;;30015:18;;:::i;:::-;30044:97;30134:6;30094:38;30126:4;30120:11;30094:38;:::i;:::-;30088:4;30044:97;:::i;:::-;30196:4;;30253:2;30242:14;;30270:1;30265:663;;;;30972:1;30989:6;30986:89;;;-1:-1:-1;31041:19:476;;;31035:26;30986:89;-1:-1:-1;;29797:1:476;29793:11;;;29789:24;29785:29;29775:40;29821:1;29817:11;;;29772:57;31088:81;;30235:944;;30265:663;29093:1;29086:14;;;29130:4;29117:18;;-1:-1:-1;;30301:20:476;;;30419:236;30433:7;30430:1;30427:14;30419:236;;;30522:19;;;30516:26;30501:42;;30614:27;;;;30582:1;30570:14;;;;30449:19;;30419:236;;;30423:3;30683:6;30674:7;30671:19;30668:201;;;30744:19;;;30738:26;-1:-1:-1;;30827:1:476;30823:14;;;30839:3;30819:24;30815:37;30811:42;30796:58;30781:74;;30668:201;-1:-1:-1;;;;;30915:1:476;30899:14;;;30895:22;30882:36;;-1:-1:-1;29840:1345:476:o", + "object": "0x608060405260043610610233575f3560e01c806370a0823111610129578063ad3cb1cc116100a8578063c87b56dd1161006d578063c87b56dd146106b0578063dd2bc302146106cf578063de1eb880146106fb578063e985e9c51461071a578063eb379a5814610739575f80fd5b8063ad3cb1cc146105f7578063b88d4fde14610627578063b9d33d1e14610646578063c260d20614610672578063c4d66de814610691575f80fd5b8063a0529e5f116100ee578063a0529e5f1461054f578063a22cb4651461056e578063abff12221461058d578063ac888c07146105ac578063ac9650d8146105cb575f80fd5b806370a08231146104bf5780638134a9e0146104de57806393c0d3f3146104fd57806395d89b411461051c5780639feffdb014610530575f80fd5b806342842e0e116101b5578063565380571161017a578063565380571461042d5780635fb7f10c1461044e5780636352211e1461046d578063647f1a9c1461048c578063678b9bad146104a0575f80fd5b806342842e0e146103a9578063495e6d89146103c85780634f1ef286146103e75780634f6ccce7146103fa57806352d1902d14610419575f80fd5b806318160ddd116101fb57806318160ddd1461030357806318d5932d1461032d57806320d634561461034c57806323b872dd1461036b5780632f745c591461038a575f80fd5b806301ffc9a71461023757806306fdde031461026b578063081812fc1461028c578063095ea7b3146102c35780630b379508146102e4575b5f80fd5b348015610242575f80fd5b5061025661025136600461340d565b610758565b60405190151581526020015b60405180910390f35b348015610276575f80fd5b5061027f610782565b6040516102629190613475565b348015610297575f80fd5b506102ab6102a6366004613487565b610823565b6040516001600160a01b039091168152602001610262565b3480156102ce575f80fd5b506102e26102dd3660046134b2565b610837565b005b3480156102ef575f80fd5b506102e26102fe36600461356a565b610846565b34801561030e575f80fd5b505f80516020614149833981519152545b604051908152602001610262565b348015610338575f80fd5b506102e261034736600461366c565b61097c565b348015610357575f80fd5b506102566103663660046134b2565b6109ba565b348015610376575f80fd5b506102e26103853660046136bb565b6109e2565b348015610395575f80fd5b5061031f6103a43660046134b2565b610a65565b3480156103b4575f80fd5b506102e26103c33660046136bb565b610ad6565b3480156103d3575f80fd5b5061031f6103e23660046136f9565b610af5565b6102e26103f53660046137bb565b610b10565b348015610405575f80fd5b5061031f610414366004613487565b610b2b565b348015610424575f80fd5b5061031f610b9d565b348015610438575f80fd5b50610256610447366004613487565b6001541190565b348015610459575f80fd5b5061031f6104683660046136f9565b610bb9565b348015610478575f80fd5b506102ab610487366004613487565b610bc9565b348015610497575f80fd5b5061031f610bd3565b3480156104ab575f80fd5b506102566104ba366004613807565b610bf3565b3480156104ca575f80fd5b5061031f6104d936600461384c565b610c0c565b3480156104e9575f80fd5b506102566104f8366004613867565b610c64565b348015610508575f80fd5b506102e2610517366004613895565b610ca6565b348015610527575f80fd5b5061027f610e3c565b34801561053b575f80fd5b5061025661054a366004613807565b610e7a565b34801561055a575f80fd5b506102e2610569366004613935565b610e89565b348015610579575f80fd5b506102e26105883660046139d3565b6110ff565b348015610598575f80fd5b506102e26105a7366004613935565b61110a565b3480156105b7575f80fd5b506102566105c63660046139ff565b6112a6565b3480156105d6575f80fd5b506105ea6105e5366004613a4f565b611347565b6040516102629190613abd565b348015610602575f80fd5b5061027f604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610632575f80fd5b506102e2610641366004613b1f565b61142c565b348015610651575f80fd5b5061066561066036600461384c565b611444565b6040516102629190613b86565b34801561067d575f80fd5b5061031f61068c366004613bc9565b611467565b34801561069c575f80fd5b506102e26106ab36600461384c565b611587565b3480156106bb575f80fd5b5061027f6106ca366004613487565b611701565b3480156106da575f80fd5b506106ee6106e9366004613867565b611765565b6040516102629190613c35565b348015610706575f80fd5b506102e2610715366004613895565b611813565b348015610725575f80fd5b50610256610734366004613c75565b611943565b348015610744575f80fd5b506102e261075336600461356a565b61198f565b5f6001600160e01b0319821663780e9d6360e01b148061077c575061077c82611ab2565b92915050565b5f8051602061410983398151915280546060919081906107a190613ca1565b80601f01602080910402602001604051908101604052809291908181526020018280546107cd90613ca1565b80156108185780601f106107ef57610100808354040283529160200191610818565b820191905f5260205f20905b8154815290600101906020018083116107fb57829003601f168201915b505050505091505090565b5f61082d82611b01565b5061077c82611b38565b610842828233611b71565b5050565b8261085a61085382610bc9565b3383611b7e565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff166108b357604051631713bf1160e21b8152600481018590526001600160a01b03841660248201526044015b60405180910390fd5b5f5b8251811015610975575f6109098483815181106108d4576108d4613cd9565b6020908102919091018101515f8981526002835260408082206001600160a01b038b16835290935291909120600b0190611be2565b9050801561096c5783828151811061092357610923613cd9565b60200260200101516001600160a01b0316856001600160a01b0316877f41a3856b408397a3953ee2e3fc5961815599fafae92aa64253fea4124c15835260405160405180910390a45b506001016108b5565b5050505050565b5f546001600160a01b031633146109a857604051630b56d23b60e41b81523360048201526024016108aa565b6109b484848484611bf6565b50505050565b6001600160a01b0382165f9081526003602052604081206109db9083611cf5565b9392505050565b6001600160a01b038216610a0b57604051633250574960e11b81525f60048201526024016108aa565b5f610a17838333611d0c565b9050836001600160a01b0316816001600160a01b0316146109b4576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016108aa565b5f5f805160206140e9833981519152610a7d84610c0c565b8310610aae5760405163295f44f760e21b81526001600160a01b0385166004820152602481018490526044016108aa565b6001600160a01b0384165f908152602091825260408082208583529092522054905092915050565b610af083838360405180602001604052805f81525061142c565b505050565b5f610b0486868686865f611467565b90505b95945050505050565b610b18611e02565b610b2182611ea8565b6108428282611f3f565b5f5f805160206140e9833981519152610b4f5f805160206141498339815191525490565b8310610b775760405163295f44f760e21b81525f6004820152602481018490526044016108aa565b806002018381548110610b8c57610b8c613cd9565b905f5260205f200154915050919050565b5f610ba6611ffb565b505f805160206141298339815191525b90565b5f610b0486868686866001611467565b5f61077c82611b01565b600180545f9182610be383613d01565b919050559050610bb63382612044565b5f610c01858585855f61205d565b90505b949350505050565b5f5f805160206141098339815191526001600160a01b038316610c44576040516322718ad960e21b81525f60048201526024016108aa565b6001600160a01b039092165f908152600390920160205250604090205490565b5f610c70836001541190565b610c7b57505f61077c565b505f9182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f546001600160a01b03163314610cd257604051630b56d23b60e41b81523360048201526024016108aa565b5f6040518060a001604052805f81526020015f1981526020015f81526020015f1981526020015f81525090505f5b82518110156109b457610d2d838281518110610d1e57610d1e613cd9565b60200260200101516001541190565b610d6757828181518110610d4357610d43613cd9565b602002602001015160405163500f73d960e01b81526004016108aa91815260200190565b5f610db6848381518110610d7d57610d7d613cd9565b602002602001015160035f886001600160a01b03166001600160a01b031681526020019081526020015f2061230c90919063ffffffff16565b90508015610e3357838281518110610dd057610dd0613cd9565b6020026020010151856001600160a01b03167fe9919c1157673d017b4e5eef8d4c012fadcf6ee40cf5f99a0912a0109b5d584260405160405180910390a3610e3385858481518110610e2457610e24613cd9565b60200260200101518586611bf6565b50600101610d00565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060915f80516020614109833981519152916107a190613ca1565b5f610c0185858585600161205d565b81610e9661085382610bc9565b5f5b82518110156109b4575f5483516001600160a01b0390911690636ec934da90859084908110610ec957610ec9613cd9565b60200260200101516040518263ffffffff1660e01b8152600401610efc91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610f17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3b9190613d19565b610f8257828181518110610f5157610f51613cd9565b602002602001015160405163e2a7bea360e01b81526004016108aa91906001600160a01b0391909116815260200190565b828181518110610f9457610f94613cd9565b60200260200101516001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffb9190613d19565b156110435782818151811061101257611012613cd9565b602002602001015160405163b4e1115760e01b81526004016108aa91906001600160a01b0391909116815260200190565b5f84815260026020526040812084516001929086908590811061106857611068613cd9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508281815181106110b9576110b9613cd9565b60200260200101516001600160a01b0316847f42e38738c8d2e007a797548d288aea65537b98d212336f6fa33ca20c7a99088560405160405180910390a3600101610e98565b610842338383612317565b8161111761085382610bc9565b5f5b82518110156109b4575f61117960025f8781526020019081526020015f205f86858151811061114a5761114a613cd9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20600b016123bd565b905061119f8585848151811061119157611191613cd9565b602002602001015183610846565b60025f8681526020019081526020015f205f8584815181106111c3576111c3613cd9565b6020908102919091018101516001600160a01b031682528101919091526040015f908120805460ff19168155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600781018290556008810182905560098101829055600a810182905590600b8201818181611247828261339f565b50505050505083828151811061125f5761125f613cd9565b60200260200101516001600160a01b0316857fa328ee555a02ae133b939087dcc439417783329f687112f415290a4637f64ab760405160405180910390a350600101611119565b5f6112b2846001541190565b6112bd57505f610c04565b6001600160a01b0385165f9081526003602052604090206112de9085611cf5565b6112e957505f610c04565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff1661131957505f610c04565b5f8481526002602090815260408083206001600160a01b03871684529091529020610c0190600b01836123c9565b604080515f815260208101909152606090826001600160401b03811115611370576113706134dc565b6040519080825280602002602001820160405280156113a357816020015b606081526020019060019003908161138e5790505b5091505f5b83811015611424576113ff308686848181106113c6576113c6613cd9565b90506020028101906113d89190613d47565b856040516020016113eb93929190613d90565b6040516020818303038152906040526123ea565b83828151811061141157611411613cd9565b60209081029190910101526001016113a8565b505092915050565b6114378484846109e2565b6109b43385858585612453565b6001600160a01b0381165f90815260036020526040902060609061077c906123bd565b5f5f1986036114835761147c87868585612572565b905061157d565b61148f878787876112a6565b6114c65760405163c6c8526f60e01b8152600481018790526001600160a01b038087166024830152851660448201526064016108aa565b5f6114d388888886612624565b80519091508410806114e85750806020015184115b1561151d5780516020820151604051633e5d735760e21b815260048101879052602481019290925260448201526064016108aa565b5f61152a86888787612572565b905061154c826080015161153d83612652565b6115479190613db5565b612682565b92508160400151831015611566578160400151925061157a565b816060015183111561157a57816060015192505b50505b9695505050505050565b5f6115906126a7565b805490915060ff600160401b82041615906001600160401b03165f811580156115b65750825b90505f826001600160401b031660011480156115d15750303b155b9050811580156115df575080155b156115fd5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561162757845460ff60401b1916600160401b1785555b6116816040518060400160405280601081526020016f53697a6520436f6c6c656374696f6e7360801b8152506040518060400160405280601081526020016f53495a455f434f4c4c454354494f4e5360801b8152506126cf565b6116896126e1565b6116916126e1565b6116996126e1565b5f80546001600160a01b0319166001600160a01b03881617905583156116f957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b606061170c82611b01565b505f6117166126e9565b90505f8151116117345760405180602001604052805f8152506109db565b8061173e84612718565b60405160200161174f929190613dd4565b6040516020818303038152906040529392505050565b6060611772836001541190565b6117925760405163500f73d960e01b8152600481018490526024016108aa565b5f8381526002602090815260408083206001600160a01b038616845290915290205460ff166117e657604051631713bf1160e21b8152600481018490526001600160a01b03831660248201526044016108aa565b5f8381526002602090815260408083206001600160a01b038616845290915290206109db90600b016123bd565b5f546001600160a01b0316331461183f57604051630b56d23b60e41b81523360048201526024016108aa565b6118476133ba565b5f5b82518110156109b457611867838281518110610d1e57610d1e613cd9565b61187d57828181518110610d4357610d43613cd9565b5f6118cc84838151811061189357611893613cd9565b602002602001015160035f886001600160a01b03166001600160a01b031681526020019081526020015f206127a790919063ffffffff16565b9050801561193a578382815181106118e6576118e6613cd9565b6020026020010151856001600160a01b03167fd0b1806956ca744bd88a4e4057a137959cb88d8d4e7e8d793301cfdf7df7cb2b60405160405180910390a361193a85858481518110610e2457610e24613cd9565b50600101611849565b6001600160a01b039182165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b8261199c61085382610bc9565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff166119f057604051631713bf1160e21b8152600481018590526001600160a01b03841660248201526044016108aa565b5f5b8251811015610975575f611a46848381518110611a1157611a11613cd9565b6020908102919091018101515f8981526002835260408082206001600160a01b038b16835290935291909120600b01906127b2565b90508015611aa957838281518110611a6057611a60613cd9565b60200260200101516001600160a01b0316856001600160a01b0316877f8e2f88c467ecc78e2adbbe6d65b6176668f4cc362a196a5c46d203a9db8d8fbe60405160405180910390a45b506001016119f2565b5f6001600160e01b031982166380ac58cd60e01b1480611ae257506001600160e01b03198216635b5e139f60e01b145b8061077c57506301ffc9a760e01b6001600160e01b031983161461077c565b5f80611b0c836127c6565b90506001600160a01b03811661077c57604051637e27328960e01b8152600481018490526024016108aa565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b610af083838360016127ff565b611b89838383612912565b610af0576001600160a01b038316611bb757604051637e27328960e01b8152600481018290526024016108aa565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016108aa565b5f6109db836001600160a01b038416612976565b611c01836001541190565b611c215760405163500f73d960e01b8152600481018490526024016108aa565b60408051808201825283815260208082018481526001600160a01b0388165f81815260048085528682208a8352855290869020945180518655808501516001870155808701516002870155606080820151600388015560809182015192870192909255925180516005870155938401516006860155838601516007860155830151600885015591015160099092019190915590518491907fb20b9722fd4401237d66274470a4daf19d973d3f3150edba3bcadf8467ed9b4290611ce79086908690613e02565b60405180910390a350505050565b5f81815260018301602052604081205415156109db565b5f80611d19858585612a59565b90506001600160a01b038116611da057611d9b845f8051602061414983398151915280545f8381527f645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0360205260408120829055600182018355919091527fa42f15e5d656f8155fd7419d740a6073999f19cd6e061449ce4a257150545bf20155565b611dc3565b846001600160a01b0316816001600160a01b031614611dc357611dc38185612b5b565b6001600160a01b038516611ddf57611dda84612bf2565b610c04565b846001600160a01b0316816001600160a01b031614610c0457610c048585612cbf565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611e8857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611e7c5f80516020614129833981519152546001600160a01b031690565b6001600160a01b031614155b15611ea65760405163703e46dd60e11b815260040160405180910390fd5b565b5f8054604051632474521560e21b8152600481018390523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015611ef5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f199190613d19565b6108425760405163e2517d3f60e01b8152336004820152602481018290526044016108aa565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f99575060408051601f3d908101601f19168201909252611f9691810190613e72565b60015b611fc157604051634c9c8ce360e01b81526001600160a01b03831660048201526024016108aa565b5f805160206141298339815191528114611ff157604051632a87526960e21b8152600481018290526024016108aa565b610af08383612d17565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ea65760405163703e46dd60e11b815260040160405180910390fd5b610842828260405180602001604052805f815250612d6c565b6001600160a01b0385165f908152600360205260408120815b61207f82612d83565b811015612213575f6120918383612d8c565b5f8181526002602090815260408083206001600160a01b038c16845290915290205490915060ff166120c3575061220b565b5f8181526002602090815260408083206001600160a01b038b1684529091528120600b01905b6120f282612d83565b811015612207575f6121048383612d8c565b9050612112818b8a15612d97565b1561211d57506121ff565b306001600160a01b031663c260d2068d868d858e8e156040518763ffffffff1660e01b815260040161215496959493929190613e89565b602060405180830381865afa92505050801561218d575060408051601f3d908101601f1916820190925261218a91810190613e72565b60015b6121c6573d8080156121ba576040519150601f19603f3d011682016040523d82523d5f602084013e6121bf565b606091505b50506121fd565b8880156121d357508b8110155b806121e75750881580156121e75750808c10155b156121fb575f975050505050505050610b07565b505b505b6001016120e9565b5050505b600101612076565b5061222087868515612d97565b1561222f576001915050610b07565b604051636130690360e11b8152309063c260d2069061225e908a905f19908a905f908b908b1590600401613e89565b602060405180830381865afa925050508015612297575060408051601f3d908101601f1916820190925261229491810190613e72565b60015b6122d0573d8080156122c4576040519150601f19603f3d011682016040523d82523d5f602084013e6122c9565b606091505b5050612302565b8380156122dd5750868110155b806122f15750831580156122f15750808710155b15612300575f92505050610b07565b505b6001915050610b07565b5f6109db8383612e6d565b5f805160206141098339815191526001600160a01b03831661235757604051630b61174360e31b81526001600160a01b03841660048201526024016108aa565b6001600160a01b038481165f818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611ce7565b60605f6109db83612eb9565b6001600160a01b0381165f90815260018301602052604081205415156109db565b60605f80846001600160a01b0316846040516124069190613ec3565b5f60405180830381855af49150503d805f811461243e576040519150601f19603f3d011682016040523d82523d5f602084013e612443565b606091505b5091509150610b07858383612f12565b6001600160a01b0383163b1561097557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290612495908890889087908790600401613ede565b6020604051808303815f875af19250505080156124cf575060408051601f3d908101601f191682019092526124cc91810190613f10565b60015b612536573d8080156124fc576040519150601f19603f3d011682016040523d82523d5f602084013e612501565b606091505b5080515f0361252e57604051633250574960e11b81526001600160a01b03851660048201526024016108aa565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146116f957604051633250574960e11b81526001600160a01b03851660048201526024016108aa565b5f81156125ef57604051620d37ab60e81b81526001600160a01b03868116600483015260248201859052851690630d37ab00906044015b602060405180830381865afa1580156125c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e89190613e72565b9050610c04565b604051632b59bd9960e01b81526001600160a01b03868116600483015260248201859052851690632b59bd99906044016125a9565b61262c6133ba565b612637858484612f6e565b90506126428161304b565b15610c0457610c0185858461308a565b5f6001600160ff1b0382111561267e5760405163123baf0360e11b8152600481018390526024016108aa565b5090565b5f8082121561267e57604051635467221960e11b8152600481018390526024016108aa565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0061077c565b6126d7613125565b610842828261314a565b611ea6613125565b60606126f446612718565b6040516020016127049190613f2b565b604051602081830303815290604052905090565b60605f6127248361317a565b60010190505f816001600160401b03811115612742576127426134dc565b6040519080825280601f01601f19166020018201604052801561276c576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461277657509392505050565b5f6109db8383612976565b5f6109db836001600160a01b038416612e6d565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b5f80516020614109833981519152818061282157506001600160a01b03831615155b156128e2575f61283085611b01565b90506001600160a01b0384161580159061285c5750836001600160a01b0316816001600160a01b031614155b801561286f575061286d8185611943565b155b156128985760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016108aa565b82156128e05784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5f93845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160a01b03831615801590610c045750826001600160a01b0316846001600160a01b0316148061294b575061294b8484611943565b80610c045750826001600160a01b031661296483611b38565b6001600160a01b031614949350505050565b5f8181526001830160205260408120548015612a50575f612998600183613d34565b85549091505f906129ab90600190613d34565b9050808214612a0a575f865f0182815481106129c9576129c9613cd9565b905f5260205f200154905080875f0184815481106129e9576129e9613cd9565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612a1b57612a1b613f87565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061077c565b5f91505061077c565b5f5f8051602061410983398151915281612a72856127c6565b90506001600160a01b03841615612a8e57612a8e818587611b7e565b6001600160a01b03811615612aca57612aa95f865f806127ff565b6001600160a01b0381165f908152600383016020526040902080545f190190555b6001600160a01b03861615612afa576001600160a01b0386165f9081526003830160205260409020805460010190555b5f85815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b5f805160206140e98339815191525f612b7384610c0c565b5f8481526001840160209081526040808320546001600160a01b03891684529186905290912091925090818314612bcb575f838152602082815260408083205485845281842081905583526001870190915290208290555b5f948552600190930160209081526040808620869055928552929092528220919091555050565b5f80516020614149833981519152545f805160206140e9833981519152905f90612c1e90600190613d34565b5f848152600384016020526040812054600285018054939450909284908110612c4957612c49613cd9565b905f5260205f200154905080846002018381548110612c6a57612c6a613cd9565b5f91825260208083209091019290925582815260038601909152604080822084905586825281205560028401805480612ca557612ca5613f87565b600190038181905f5260205f20015f905590555050505050565b5f805160206140e98339815191525f6001612cd985610c0c565b612ce39190613d34565b6001600160a01b039094165f9081526020838152604080832087845282528083208690559482526001909301909252502055565b612d2082613251565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612d6457610af082826123ea565b6108426132b4565b612d7683836132d3565b610af0335f858585612453565b5f61077c825490565b5f6109db8383613334565b5f81612e0557604051630cfa9a4960e01b81526001600160a01b038581166004830152841690630cfa9a4990602401602060405180830381865afa158015612de1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dda9190613d19565b60405163044ce7c360e41b81526001600160a01b0385811660048301528416906344ce7c3090602401602060405180830381865afa158015612e49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c049190613d19565b5f818152600183016020526040812054612eb257508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561077c565b505f61077c565b6060815f01805480602002602001604051908101604052809291908181526020018280548015612f0657602002820191905f5260205f20905b815481526020019060010190808311612ef2575b50505050509050919050565b606082612f2757612f228261335a565b6109db565b8151158015612f3e57506001600160a01b0384163b155b15612f6757604051639996b31560e01b81526001600160a01b03851660048201526024016108aa565b50806109db565b612f766133ba565b81612fe35760405163c421a75960e01b81526001600160a01b03858116600483015284169063c421a7599060240160a060405180830381865afa158015612fbf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dda9190613f9b565b604051630264211160e11b81526001600160a01b0385811660048301528416906304c842229060240160a060405180830381865afa158015613027573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c049190613f9b565b80515f9015801561305e57506020820151155b801561306c57506040820151155b801561307a57506060820151155b801561077c575050608001511590565b6130926133ba565b816130c1576001600160a01b0384165f90815260046020908152604080832086845290915290206005016130e4565b6001600160a01b0384165f90815260046020908152604080832086845290915290205b6040805160a0810182528254815260018301546020820152600283015491810191909152600382015460608201526004909101546080820152949350505050565b61312d613386565b611ea657604051631afcd79f60e31b815260040160405180910390fd5b613152613125565b5f805160206141098339815191528061316b848261402d565b50600181016109b4838261402d565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106131b85772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106131e4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061320257662386f26fc10000830492506010015b6305f5e100831061321a576305f5e100830492506008015b612710831061322e57612710830492506004015b60648310613240576064830492506002015b600a831061077c5760010192915050565b806001600160a01b03163b5f0361328657604051634c9c8ce360e01b81526001600160a01b03821660048201526024016108aa565b5f8051602061412983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b3415611ea65760405163b398979f60e01b815260040160405180910390fd5b6001600160a01b0382166132fc57604051633250574960e11b81525f60048201526024016108aa565b5f61330883835f611d0c565b90506001600160a01b03811615610af0576040516339e3563760e11b81525f60048201526024016108aa565b5f825f01828154811061334957613349613cd9565b905f5260205f200154905092915050565b80511561336a5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b5f61338f6126a7565b54600160401b900460ff16919050565b5080545f8255905f5260205f209081019061338391906133e4565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5b8082111561267e575f81556001016133e5565b6001600160e01b031981168114613383575f80fd5b5f6020828403121561341d575f80fd5b81356109db816133f8565b5f5b8381101561344257818101518382015260200161342a565b50505f910152565b5f8151808452613461816020860160208601613428565b601f01601f19169290920160200192915050565b602081525f6109db602083018461344a565b5f60208284031215613497575f80fd5b5035919050565b6001600160a01b0381168114613383575f80fd5b5f80604083850312156134c3575f80fd5b82356134ce8161349e565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715613512576135126134dc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613540576135406134dc565b604052919050565b5f6001600160401b03821115613560576135606134dc565b5060051b60200190565b5f805f6060848603121561357c575f80fd5b8335925060208085013561358f8161349e565b925060408501356001600160401b038111156135a9575f80fd5b8501601f810187136135b9575f80fd5b80356135cc6135c782613548565b613518565b81815260059190911b820183019083810190898311156135ea575f80fd5b928401925b828410156136115783356136028161349e565b825292840192908401906135ef565b80955050505050509250925092565b5f60a08284031215613630575f80fd5b6136386134f0565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f805f806101808587031215613680575f80fd5b843561368b8161349e565b9350602085013592506136a18660408701613620565b91506136b08660e08701613620565b905092959194509250565b5f805f606084860312156136cd575f80fd5b83356136d88161349e565b925060208401356136e88161349e565b929592945050506040919091013590565b5f805f805f60a0868803121561370d575f80fd5b85356137188161349e565b945060208601359350604086013561372f8161349e565b9250606086013561373f8161349e565b949793965091946080013592915050565b5f82601f83011261375f575f80fd5b81356001600160401b03811115613778576137786134dc565b61378b601f8201601f1916602001613518565b81815284602083860101111561379f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156137cc575f80fd5b82356137d78161349e565b915060208301356001600160401b038111156137f1575f80fd5b6137fd85828601613750565b9150509250929050565b5f805f806080858703121561381a575f80fd5b84356138258161349e565b935060208501359250604085013561383c8161349e565b9396929550929360600135925050565b5f6020828403121561385c575f80fd5b81356109db8161349e565b5f8060408385031215613878575f80fd5b82359150602083013561388a8161349e565b809150509250929050565b5f80604083850312156138a6575f80fd5b82356138b18161349e565b91506020838101356001600160401b038111156138cc575f80fd5b8401601f810186136138dc575f80fd5b80356138ea6135c782613548565b81815260059190911b82018301908381019088831115613908575f80fd5b928401925b828410156139265783358252928401929084019061390d565b80955050505050509250929050565b5f8060408385031215613946575f80fd5b823591506020808401356001600160401b03811115613963575f80fd5b8401601f81018613613973575f80fd5b80356139816135c782613548565b81815260059190911b8201830190838101908883111561399f575f80fd5b928401925b828410156139265783356139b78161349e565b825292840192908401906139a4565b8015158114613383575f80fd5b5f80604083850312156139e4575f80fd5b82356139ef8161349e565b9150602083013561388a816139c6565b5f805f8060808587031215613a12575f80fd5b8435613a1d8161349e565b9350602085013592506040850135613a348161349e565b91506060850135613a448161349e565b939692955090935050565b5f8060208385031215613a60575f80fd5b82356001600160401b0380821115613a76575f80fd5b818501915085601f830112613a89575f80fd5b813581811115613a97575f80fd5b8660208260051b8501011115613aab575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015613b1257603f19888603018452613b0085835161344a565b94509285019290850190600101613ae4565b5092979650505050505050565b5f805f8060808587031215613b32575f80fd5b8435613b3d8161349e565b93506020850135613b4d8161349e565b92506040850135915060608501356001600160401b03811115613b6e575f80fd5b613b7a87828801613750565b91505092959194509250565b602080825282518282018190525f9190848201906040850190845b81811015613bbd57835183529284019291840191600101613ba1565b50909695505050505050565b5f805f805f8060c08789031215613bde575f80fd5b8635613be98161349e565b9550602087013594506040870135613c008161349e565b93506060870135613c108161349e565b92506080870135915060a0870135613c27816139c6565b809150509295509295509295565b602080825282518282018190525f9190848201906040850190845b81811015613bbd5783516001600160a01b031683529284019291840191600101613c50565b5f8060408385031215613c86575f80fd5b8235613c918161349e565b9150602083013561388a8161349e565b600181811c90821680613cb557607f821691505b602082108103613cd357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201613d1257613d12613ced565b5060010190565b5f60208284031215613d29575f80fd5b81516109db816139c6565b8181038181111561077c5761077c613ced565b5f808335601e19843603018112613d5c575f80fd5b8301803591506001600160401b03821115613d75575f80fd5b602001915036819003821315613d89575f80fd5b9250929050565b828482375f8382015f81528351613dab818360208801613428565b0195945050505050565b8082018281125f83128015821682158216171561142457611424613ced565b5f8351613de5818460208801613428565b835190830190613df9818360208801613428565b01949350505050565b6101408101613e3c828580518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b825160a0830152602083015160c0830152604083015160e0830152606083015161010083015260808301516101208301526109db565b5f60208284031215613e82575f80fd5b5051919050565b6001600160a01b0396871681526020810195909552928516604085015293166060830152608082019290925290151560a082015260c00190565b5f8251613ed4818460208701613428565b9190910192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610b049083018461344a565b5f60208284031215613f20575f80fd5b81516109db816133f8565b7f68747470733a2f2f6170692e73697a652e6372656469742f636f6c6c656374698152636f6e732f60e01b60208201525f8251613f6f816024850160208701613428565b602f60f81b6024939091019283015250602501919050565b634e487b7160e01b5f52603160045260245ffd5b5f60a08284031215613fab575f80fd5b613fb36134f0565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b601f821115610af057805f5260205f20601f840160051c8101602085101561400e5750805b601f840160051c820191505b81811015610975575f815560010161401a565b81516001600160401b03811115614046576140466134dc565b61405a816140548454613ca1565b84613fe9565b602080601f83116001811461408d575f84156140765750858301515b5f19600386901b1c1916600185901b1785556116f9565b5f85815260208120601f198616915b828110156140bb5788860151825594840194600190910190840161409c565b50858210156140d857878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed02a264697066735822122021e4470df07f7e75ac6571ab49f1e05aad8ab9ac39d9d4eb5611acb5bb313ea064736f6c63430008170033", + "sourceMap": "1286:1003:256:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2333:233:90;;;;;;;;;;-1:-1:-1;2333:233:90;;;;;:::i;:::-;;:::i;:::-;;;565:14:486;;558:22;540:41;;528:2;513:18;2333:233:90;;;;;;;;3545:146:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4791:154::-;;;;;;;;;;-1:-1:-1;4791:154:89;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:486;;;1679:51;;1667:2;1652:18;4791:154:89;1533:203:486;4617:113:89;;;;;;;;;;-1:-1:-1;4617:113:89;;;;;:::i;:::-;;:::i;:::-;;4349:657:258;;;;;;;;;;-1:-1:-1;4349:657:258;;;;;:::i;:::-;;:::i;3048:179:90:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;3201:19:90;3048:179;;;4397:25:486;;;4385:2;4370:18;3048:179:90;4251:177:486;2642:367:259;;;;;;;;;;-1:-1:-1;2642:367:259;;;;;:::i;:::-;;:::i;1520:171:260:-;;;;;;;;;;-1:-1:-1;1520:171:260;;;;;:::i;:::-;;:::i;5494:578:89:-;;;;;;;;;;-1:-1:-1;5494:578:89;;;;;:::i;:::-;;:::i;2645:332:90:-;;;;;;;;;;-1:-1:-1;2645:332:90;;;;;:::i;:::-;;:::i;6138:132:89:-;;;;;;;;;;-1:-1:-1;6138:132:89;;;;;:::i;:::-;;:::i;4141:274:260:-;;;;;;;;;;-1:-1:-1;4141:274:260;;;;;:::i;:::-;;:::i;4161:214:88:-;;;;;;:::i;:::-;;:::i;3299:303:90:-;;;;;;;;;;-1:-1:-1;3299:303:90;;;;;:::i;:::-;;:::i;3708:134:88:-;;;;;;;;;;;;;:::i;1334:136:260:-;;;;;;;;;;-1:-1:-1;1334:136:260;;;;;:::i;:::-;1444:19;;-1:-1:-1;1429:34:260;1334:136;3820:271;;;;;;;;;;-1:-1:-1;3820:271:260;;;;;:::i;:::-;;:::i;3365:118:89:-;;;;;;;;;;-1:-1:-1;3365:118:89;;;;;:::i;:::-;;:::i;1979:166:258:-;;;;;;;;;;;;;:::i;6949:249:260:-;;;;;;;;;;-1:-1:-1;6949:249:260;;;;;:::i;:::-;;:::i;3043:265:89:-;;;;;;;;;;-1:-1:-1;3043:265:89;;;;;:::i;:::-;;:::i;1741:254:260:-;;;;;;;;;;-1:-1:-1;1741:254:260;;;;;:::i;:::-;;:::i;1069:839:259:-;;;;;;;;;;-1:-1:-1;1069:839:259;;;;;:::i;:::-;;:::i;3755:150:89:-;;;;;;;;;;;;;:::i;6653:246:260:-;;;;;;;;;;-1:-1:-1;6653:246:260;;;;;:::i;:::-;;:::i;2205:751:258:-;;;;;;;;;;-1:-1:-1;2205:751:258;;;;;:::i;:::-;;:::i;5012:144:89:-;;;;;;;;;;-1:-1:-1;5012:144:89;;;;;:::i;:::-;;:::i;3016:570:258:-;;;;;;;;;;-1:-1:-1;3016:570:258;;;;;:::i;:::-;;:::i;2581:563:260:-;;;;;;;;;;-1:-1:-1;2581:563:260;;;;;:::i;:::-;;:::i;1518:484:92:-;;;;;;;;;;-1:-1:-1;1518:484:92;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1819:58:88:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:88;;;;;6336:233:89;;;;;;;;;;-1:-1:-1;6336:233:89;;;;;:::i;:::-;;:::i;3194:161:260:-;;;;;;;;;;-1:-1:-1;3194:161:260;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4421:1817::-;;;;;;;;;;-1:-1:-1;4421:1817:260;;;;;:::i;:::-;;:::i;1668:272:256:-;;;;;;;;;;-1:-1:-1;1668:272:256;;;;;:::i;:::-;;:::i;3971:255:89:-;;;;;;;;;;-1:-1:-1;3971:255:89;;;;;:::i;:::-;;:::i;2045:486:260:-;;;;;;;;;;-1:-1:-1;2045:486:260;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1914:722:259:-;;;;;;;;;;-1:-1:-1;1914:722:259;;;;;:::i;:::-;;:::i;5222:210:89:-;;;;;;;;;;-1:-1:-1;5222:210:89;;;;;:::i;:::-;;:::i;3646:643:258:-;;;;;;;;;;-1:-1:-1;3646:643:258;;;;;:::i;:::-;;:::i;2333:233:90:-;2446:4;-1:-1:-1;;;;;;2469:50:90;;-1:-1:-1;;;2469:50:90;;:90;;;2523:36;2547:11;2523:23;:36::i;:::-;2462:97;2333:233;-1:-1:-1;;2333:233:90:o;3545:146:89:-;-1:-1:-1;;;;;;;;;;;3670:14:89;;3590:13;;2076:21;;;3670:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3545:146;:::o;4791:154::-;4858:7;4877:22;4891:7;4877:13;:22::i;:::-;;4917:21;4930:7;4917:12;:21::i;4617:113::-;4688:35;4697:2;4701:7;966:10:91;4688:8:89;:35::i;:::-;4617:113;;:::o;4349:657:258:-;4521:12;1653:65;1670:21;1678:12;1670:7;:21::i;:::-;1693:10;1705:12;1653:16;:65::i;:::-;4554:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;4554:33:258;::::1;::::0;;;;;;;:45;::::1;;4549:136;;4622:52;::::0;-1:-1:-1;;;4622:52:258;;::::1;::::0;::::1;17671:25:486::0;;;-1:-1:-1;;;;;17732:32:486;;17712:18;;;17705:60;17644:18;;4622:52:258::1;;;;;;;;4549:136;4700:9;4695:305;4719:13;:20;4715:1;:24;4695:305;;;4760:12;4775:72;4830:13;4844:1;4830:16;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;4775:25:::1;::::0;;;:11:::1;:25:::0;;;;;;-1:-1:-1;;;;;4775:33:258;::::1;::::0;;;;;;;;;:47:::1;;::::0;:54:::1;:72::i;:::-;4760:87;;4865:7;4861:129;;;4958:13;4972:1;4958:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;4897:78:258::1;4949:6;-1:-1:-1::0;;;;;4897:78:258::1;4927:12;4897:78;;;;;;;;;;4861:129;-1:-1:-1::0;4741:3:258::1;;4695:305;;;;4349:657:::0;;;;:::o;2642:367:259:-;2793:11:257;;-1:-1:-1;;;;;2793:11:257;2771:10;:34;2767:99;;2828:27;;-1:-1:-1;;;2828:27:257;;2844:10;2828:27;;;1679:51:486;1652:18;;2828:27:257;1533:203:486;2767:99:257;2899:103:259::1;2939:4;2945:12;2959:19;2980:21;2899:39;:103::i;:::-;2642:367:::0;;;;:::o;1520:171:260:-;-1:-1:-1;;;;;1636:25:260;;1613:4;1636:25;;;:19;:25;;;;;:48;;1671:12;1636:34;:48::i;:::-;1629:55;1520:171;-1:-1:-1;;;1520:171:260:o;5494:578:89:-;-1:-1:-1;;;;;5588:16:89;;5584:87;;5627:33;;-1:-1:-1;;;5627:33:89;;5657:1;5627:33;;;1679:51:486;1652:18;;5627:33:89;1533:203:486;5584:87:89;5889:21;5913:34;5921:2;5925:7;966:10:91;5913:7:89;:34::i;:::-;5889:58;;5978:4;-1:-1:-1;;;;;5961:21:89;:13;-1:-1:-1;;;;;5961:21:89;;5957:109;;6005:50;;-1:-1:-1;;;6005:50:89;;-1:-1:-1;;;;;18166:15:486;;;6005:50:89;;;18148:34:486;18198:18;;;18191:34;;;18261:15;;18241:18;;;18234:43;18083:18;;6005:50:89;17908:375:486;2645:332:90;2733:7;-1:-1:-1;;;;;;;;;;;2840:16:90;2850:5;2840:9;:16::i;:::-;2831:5;:25;2827:99;;2879:36;;-1:-1:-1;;;2879:36:90;;-1:-1:-1;;;;;18480:32:486;;2879:36:90;;;18462:51:486;18529:18;;;18522:34;;;18435:18;;2879:36:90;18288:274:486;2827:99:90;-1:-1:-1;;;;;2942:21:90;;:14;:21;;;;;;;;;;;:28;;;;;;;;;-1:-1:-1;2645:332:90;;;;:::o;6138:132:89:-;6224:39;6241:4;6247:2;6251:7;6224:39;;;;;;;;;;;;:16;:39::i;:::-;6138:132;;;:::o;4141:274:260:-;4302:11;4336:72;4353:4;4359:12;4373:6;4381:12;4395:5;4402;4336:16;:72::i;:::-;4329:79;;4141:274;;;;;;;;:::o;4161:214:88:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;3299:303:90:-:0;3365:7;-1:-1:-1;;;;;;;;;;;3472:13:90;-1:-1:-1;;;;;;;;;;;3201:19:90;;3048:179;3472:13;3463:5;:22;3459:101;;3508:41;;-1:-1:-1;;;3508:41:90;;3539:1;3508:41;;;18462:51:486;18529:18;;;18522:34;;;18435:18;;3508:41:90;18288:274:486;3459:101:90;3576:1;:12;;3589:5;3576:19;;;;;;;;:::i;:::-;;;;;;;;;3569:26;;;3299:303;;;:::o;3708:134:88:-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;2956:1:88::1;3708:134:::0;:::o;3820:271:260:-;3979:11;4013:71;4030:4;4036:12;4050:6;4058:12;4072:5;4079:4;4013:16;:71::i;3365:118:89:-;3428:7;3454:22;3468:7;3454:13;:22::i;1979:166:258:-;2072:19;:21;;2025:20;;;2072:21;;;:::i;:::-;;;;;2057:36;;2103:35;2113:10;2125:12;2103:9;:35::i;6949:249:260:-;7101:4;7128:63;7153:4;7159:9;7170:6;7178:5;7185;7128:24;:63::i;:::-;7121:70;;6949:249;;;;;;;:::o;3043:265:89:-;3106:7;-1:-1:-1;;;;;;;;;;;;;;;;3184:19:89;;3180:87;;3226:30;;-1:-1:-1;;;3226:30:89;;3253:1;3226:30;;;1679:51:486;1652:18;;3226:30:89;1533:203:486;3180:87:89;-1:-1:-1;;;;;3283:18:89;;;;;;;:11;;;;:18;;-1:-1:-1;3283:18:89;;;;;3043:265::o;1741:254:260:-;1834:4;1855:33;1875:12;1444:19;;-1:-1:-1;1429:34:260;1334:136;1855:33;1850:77;;-1:-1:-1;1911:5:260;1904:12;;1850:77;-1:-1:-1;1943:25:260;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;1943:33:260;;;;;;;;;;;:45;;;;1741:254::o;1069:839:259:-;2793:11:257;;-1:-1:-1;;;;;2793:11:257;2771:10;:34;2767:99;;2828:27;;-1:-1:-1;;;2828:27:257;;2844:10;2828:27;;;1679:51:486;1652:18;;2828:27:257;1533:203:486;2767:99:257;1186:36:259::1;1225:186;;;;;;;;1270:1;1225:186;;;;-1:-1:-1::0;;1225:186:259::1;;;;1334:1;1225:186;;;;-1:-1:-1::0;;1225:186:259::1;;;;1399:1;1225:186;;::::0;1186:225:::1;;1427:9;1422:480;1446:13;:20;1442:1;:24;1422:480;;;1492:37;1512:13;1526:1;1512:16;;;;;;;;:::i;:::-;;;;;;;1444:19:260::0;;-1:-1:-1;1429:34:260;1334:136;1492:37:259::1;1487:121;;1576:13;1590:1;1576:16;;;;;;;;:::i;:::-;;;;;;;1556:37;;-1:-1:-1::0;;;1556:37:259::1;;;;;;4397:25:486::0;;4385:2;4370:18;;4251:177;1487:121:259::1;1622:10;1635:47;1665:13;1679:1;1665:16;;;;;;;;:::i;:::-;;;;;;;1635:19;:25;1655:4;-1:-1:-1::0;;;;;1635:25:259::1;-1:-1:-1::0;;;;;1635:25:259::1;;;;;;;;;;;;:29;;:47;;;;:::i;:::-;1622:60;;1700:5;1696:196;;;1759:13;1773:1;1759:16;;;;;;;;:::i;:::-;;;;;;;1753:4;-1:-1:-1::0;;;;;1730:46:259::1;;;;;;;;;;;1794:83;1834:4;1840:13;1854:1;1840:16;;;;;;;;:::i;:::-;;;;;;;1858:8;1868;1794:39;:83::i;:::-;-1:-1:-1::0;1468:3:259::1;;1422:480;;3755:150:89::0;3889:9;3882:16;;3802:13;;-1:-1:-1;;;;;;;;;;;2076:21:89;3882:16;;;:::i;6653:246:260:-;6805:4;6832:60;6857:4;6863:7;6872:6;6880:5;6887:4;6832:24;:60::i;2205:751:258:-;2340:12;1653:65;1670:21;1678:12;1670:7;:21::i;1653:65::-;2417:9:::1;2412:496;2436:7;:14;2432:1;:18;2412:496;;;2476:11;::::0;2505:10;;-1:-1:-1;;;;;2476:11:258;;::::1;::::0;:20:::1;::::0;2505:7;;2513:1;;2505:10;::::1;;;;;:::i;:::-;;;;;;;2476:41;;;;;;;;;;;;;;-1:-1:-1::0;;;;;1697:32:486;;;;1679:51;;1667:2;1652:18;;1533:203;2476:41:258::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2471:130;;2574:7;2582:1;2574:10;;;;;;;;:::i;:::-;;;;;;;2544:42;;-1:-1:-1::0;;;2544:42:258::1;;;;;;;-1:-1:-1::0;;;;;1697:32:486;;;;1679:51;;1667:2;1652:18;;1533:203;2471:130:258::1;2646:7;2654:1;2646:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;2618:47:258::1;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2614:136;;;2723:7;2731:1;2723:10;;;;;;;;:::i;:::-;;;;;;;2694:41;;-1:-1:-1::0;;;2694:41:258::1;;;;;;;-1:-1:-1::0;;;;;1697:32:486;;;;1679:51;;1667:2;1652:18;;1533:203;2614:136:258::1;2763:25;::::0;;;:11:::1;:25;::::0;;;;2789:10;;2815:4:::1;::::0;2763:25;2789:7;;2797:1;;2789:10;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;2763:37:258::1;-1:-1:-1::0;;;;;2763:37:258::1;;;;;;;;;;;;:49;;;:56;;;;;;;;;;;;;;;;;;2885:7;2893:1;2885:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;2839:58:258::1;2863:12;2839:58;;;;;;;;;;2452:3;;2412:496;;5012:144:89::0;5097:52;966:10:91;5130:8:89;5140;5097:18;:52::i;3016:570:258:-;3156:12;1653:65;1670:21;1678:12;1670:7;:21::i;1653:65::-;3189:9:::1;3184:396;3208:7;:14;3204:1;:18;3184:396;;;3243:30;3276:60;:11;:25;3288:12;3276:25;;;;;;;;;;;:37;3302:7;3310:1;3302:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;3276:37:258::1;-1:-1:-1::0;;;;;3276:37:258::1;;;;;;;;;;;;:51;;:58;:60::i;:::-;3243:93;;3350:80;3390:12;3404:7;3412:1;3404:10;;;;;;;;:::i;:::-;;;;;;;3416:13;3350:39;:80::i;:::-;3451:11;:25;3463:12;3451:25;;;;;;;;;;;:37;3477:7;3485:1;3477:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;3451:37:258::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;3451:37:258;;;3444:44;;-1:-1:-1;;3444:44:258::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;3451:37;3444:44:::1;::::0;::::1;-1:-1:-1::0;3444:44:258;-1:-1:-1;3444:44:258::1;::::0;-1:-1:-1;3444:44:258::1;:::i;:::-;;;;;;;3557:7;3565:1;3557:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;3507:62:258::1;3535:12;3507:62;;;;;;;;;;-1:-1:-1::0;3224:3:258::1;;3184:396;;2581:563:260::0;2759:4;2780:33;2800:12;1444:19;;-1:-1:-1;1429:34:260;1334:136;2780:33;2775:77;;-1:-1:-1;2836:5:260;2829:12;;2775:77;-1:-1:-1;;;;;2866:25:260;;;;;;:19;:25;;;;;:48;;2901:12;2866:34;:48::i;:::-;2861:92;;-1:-1:-1;2937:5:260;2930:12;;2861:92;2967:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;2967:33:260;;;;;;;;;:45;;;2962:89;;-1:-1:-1;3035:5:260;3028:12;;2962:89;3067:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3067:33:260;;;;;;;;;:70;;:47;;3124:12;3067:56;:70::i;1518:484:92:-;1684:12;;;1620:20;1684:12;;;;;;;;1586:22;;1795:4;-1:-1:-1;;;;;1783:24:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:34;;1822:9;1817:155;1837:15;;;1817:155;;;1886:75;1923:4;1943;;1948:1;1943:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1952;1930:30;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1886:28;:75::i;:::-;1873:7;1881:1;1873:10;;;;;;;;:::i;:::-;;;;;;;;;;:88;1854:3;;1817:155;;;;1981:14;1518:484;;;;:::o;6336:233:89:-;6449:31;6462:4;6468:2;6472:7;6449:12;:31::i;:::-;6490:72;966:10:91;6538:4:89;6544:2;6548:7;6557:4;6490:33;:72::i;3194:161:260:-;-1:-1:-1;;;;;3314:25:260;;;;;;:19;:25;;;;;3265:30;;3314:34;;:32;:34::i;4421:1817::-;4627:11;-1:-1:-1;;4802:12:260;:27;4798:1434;;4852:62;4881:4;4887:6;4895:5;4902:11;4852:28;:62::i;:::-;4845:69;;;;4798:1434;5031:79;5069:4;5075:12;5089:6;5097:12;5031:37;:79::i;:::-;5026:1206;;5133:80;;-1:-1:-1;;;5133:80:260;;;;;20731:25:486;;;-1:-1:-1;;;;;20830:15:486;;;20810:18;;;20803:43;20882:15;;20862:18;;;20855:43;20704:18;;5133:80:260;20529:375:486;5026:1206:260;5376:42;5437:65;5462:4;5468:12;5482:6;5490:11;5437:24;:65::i;:::-;5528:23;;5376:126;;-1:-1:-1;5520:31:260;;;:66;;;5563:14;:23;;;5555:5;:31;5520:66;5516:706;;;5633:23;;5658;;;;5613:69;;-1:-1:-1;;;5613:69:260;;;;;21111:25:486;;;21152:18;;;21145:34;;;;21195:18;;;21188:34;21084:18;;5613:69:260;20909:319:486;5516:706:260;5721:15;5739:70;5768:12;5782:6;5790:5;5797:11;5739:28;:70::i;:::-;5721:88;;5869:73;5917:14;:24;;;5888:26;5906:7;5888:17;:26::i;:::-;:53;;;;:::i;:::-;5869:18;:73::i;:::-;5863:79;;6010:14;:21;;;6004:3;:27;6000:208;;;6061:14;:21;;;6055:27;;6000:208;;;6117:14;:21;;;6111:3;:27;6107:101;;;6168:14;:21;;;6162:27;;6107:101;5703:519;5324:908;5026:1206;4421:1817;;;;;;;;:::o;1668:272:256:-;4158:30:87;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:87;-1:-1:-1;;;4302:15:87;;;4301:16;;-1:-1:-1;;;;;4348:14:87;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:87;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:87;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:87;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:87;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:87;-1:-1:-1;;;5011:22:87;;;4977:67;1746:53:256::1;;;;;;;;;;;;;;-1:-1:-1::0;;;1746:53:256::1;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;;;1746:53:256::1;;::::0;:13:::1;:53::i;:::-;1809:25;:23;:25::i;:::-;1844:18;:16;:18::i;:::-;1872:24;:22;:24::i;:::-;1907:11;:26:::0;;-1:-1:-1;;;;;;1907:26:256::1;-1:-1:-1::0;;;;;1907:26:256;::::1;;::::0;;5064:101:87;;;;5098:23;;-1:-1:-1;;;;5098:23:87;;;5140:14;;-1:-1:-1;21607:50:486;;5140:14:87;;21595:2:486;21580:18;5140:14:87;;;;;;;5064:101;4092:1079;;;;;1668:272:256;:::o;3971:255:89:-;4035:13;4060:22;4074:7;4060:13;:22::i;:::-;;4093:21;4117:10;:8;:10::i;:::-;4093:34;;4168:1;4150:7;4144:21;:25;:75;;;;;;;;;;;;;;;;;4186:7;4195:18;:7;:16;:18::i;:::-;4172:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4137:82;3971:255;-1:-1:-1;;;3971:255:89:o;2045:486:260:-;2170:16;2207:33;2227:12;1444:19;;-1:-1:-1;1429:34:260;1334:136;2207:33;2202:105;;2263:33;;-1:-1:-1;;;2263:33:260;;;;;4397:25:486;;;4370:18;;2263:33:260;4251:177:486;2202:105:260;2321:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;2321:33:260;;;;;;;;;:45;;;2316:136;;2389:52;;-1:-1:-1;;;2389:52:260;;;;;17671:25:486;;;-1:-1:-1;;;;;17732:32:486;;17712:18;;;17705:60;17644:18;;2389:52:260;17497:274:486;2316:136:260;2468:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;2468:33:260;;;;;;;;;:56;;:47;;:54;:56::i;1914:722:259:-;2793:11:257;;-1:-1:-1;;;;;2793:11:257;2771:10;:34;2767:99;;2828:27;;-1:-1:-1;;;2828:27:257;;2844:10;2828:27;;;1679:51:486;1652:18;;2828:27:257;1533:203:486;2767:99:257;2092:36:259::1;;:::i;:::-;2144:9;2139:491;2163:13;:20;2159:1;:24;2139:491;;;2209:37;2229:13;2243:1;2229:16;;;;;;;;:::i;2209:37::-;2204:121;;2293:13;2307:1;2293:16;;;;;;;;:::i;2204:121::-;2339:12;2354:50;2387:13;2401:1;2387:16;;;;;;;;:::i;:::-;;;;;;;2354:19;:25;2374:4;-1:-1:-1::0;;;;;2354:25:259::1;-1:-1:-1::0;;;;;2354:25:259::1;;;;;;;;;;;;:32;;:50;;;;:::i;:::-;2339:65;;2422:7;2418:202;;;2487:13;2501:1;2487:16;;;;;;;;:::i;:::-;;;;;;;2481:4;-1:-1:-1::0;;;;;2454:50:259::1;;;;;;;;;;;2522:83;2562:4;2568:13;2582:1;2568:16;;;;;;;;:::i;2522:83::-;-1:-1:-1::0;2185:3:259::1;;2139:491;;5222:210:89::0;-1:-1:-1;;;;;5388:27:89;;;5310:4;5388:27;;;:20;:27;;;;;;;;:37;;;;;;;;;;;;;;;5222:210::o;3646:643:258:-;3815:12;1653:65;1670:21;1678:12;1670:7;:21::i;1653:65::-;3848:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;3848:33:258;::::1;::::0;;;;;;;:45;::::1;;3843:136;;3916:52;::::0;-1:-1:-1;;;3916:52:258;;::::1;::::0;::::1;17671:25:486::0;;;-1:-1:-1;;;;;17732:32:486;;17712:18;;;17705:60;17644:18;;3916:52:258::1;17497:274:486::0;3843:136:258::1;3994:9;3989:294;4013:13;:20;4009:1;:24;3989:294;;;4054:10;4067:69;4119:13;4133:1;4119:16;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;4067:25:::1;::::0;;;:11:::1;:25:::0;;;;;;-1:-1:-1;;;;;4067:33:258;::::1;::::0;;;;;;;;;:47:::1;;::::0;:51:::1;:69::i;:::-;4054:82;;4154:5;4150:123;;;4241:13;4255:1;4241:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;4184:74:258::1;4232:6;-1:-1:-1::0;;;;;4184:74:258::1;4210:12;4184:74;;;;;;;;;;4150:123;-1:-1:-1::0;4035:3:258::1;;3989:294;;2673:311:89::0;2786:4;-1:-1:-1;;;;;;2821:40:89;;-1:-1:-1;;;2821:40:89;;:104;;-1:-1:-1;;;;;;;2877:48:89;;-1:-1:-1;;;2877:48:89;2821:104;:156;;;-1:-1:-1;;;;;;;;;;1134:40:95;;;2941:36:89;1035:146:95;17910:241:89;17973:7;17992:13;18008:17;18017:7;18008:8;:17::i;:::-;17992:33;-1:-1:-1;;;;;;18039:19:89;;18035:88;;18081:31;;-1:-1:-1;;;18081:31:89;;;;;4397:25:486;;;4370:18;;18081:31:89;4251:177:486;7372:184:89;7442:7;7523:26;;;:17;:26;;;;;;-1:-1:-1;;;;;7523:26:89;;7372:184::o;16076:120::-;16156:33;16165:2;16169:7;16178:4;16184;16156:8;:33::i;8571:368::-;8683:38;8697:5;8704:7;8713;8683:13;:38::i;:::-;8678:255;;-1:-1:-1;;;;;8741:19:89;;8737:186;;8787:31;;-1:-1:-1;;;8787:31:89;;;;;4397:25:486;;;4370:18;;8787:31:89;4251:177:486;8737:186:89;8864:44;;-1:-1:-1;;;8864:44:89;;-1:-1:-1;;;;;18480:32:486;;8864:44:89;;;18462:51:486;18529:18;;;18522:34;;;18435:18;;8864:44:89;18288:274:486;9650:156:141;9723:4;9746:53;9754:3;-1:-1:-1;;;;;9774:23:141;;9746:7;:53::i;3015:700:259:-;3262:33;3282:12;1444:19:260;;-1:-1:-1;1429:34:260;1334:136;3262:33:259;3257:105;;3318:33;;-1:-1:-1;;;3318:33:259;;;;;4397:25:486;;;4370:18;;3318:33:259;4251:177:486;3257:105:259;3432:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3372:43:259;;-1:-1:-1;3372:43:259;;;:37;:43;;;;;;:57;;;;;;;;;:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:102;;3416:12;;3372:43;3606:102;;;;3503:19;;3559:21;;3606:102;:::i;:::-;;;;;;;;3015:700;;;;:::o;13097:144:141:-;13174:4;5006:21;;;:14;;;:21;;;;;;:26;;13197:37;4910:129;3658:625:90;3753:7;3772:21;3796:32;3810:2;3814:7;3823:4;3796:13;:32::i;:::-;3772:56;-1:-1:-1;;;;;;3843:27:90;;3839:210;;3886:40;3918:7;-1:-1:-1;;;;;;;;;;;5245:19:90;;5141:33;5216:26;;;:17;:26;;;;;:48;;;5274:26;;;;;;;;;;;;5065:242;3886:40;3839:210;;;3964:2;-1:-1:-1;;;;;3947:19:90;:13;-1:-1:-1;;;;;3947:19:90;;3943:106;;3982:56;4015:13;4030:7;3982:32;:56::i;:::-;-1:-1:-1;;;;;4062:16:90;;4058:188;;4094:45;4131:7;4094:36;:45::i;:::-;4058:188;;;4177:2;-1:-1:-1;;;;;4160:19:90;:13;-1:-1:-1;;;;;4160:19:90;;4156:90;;4195:40;4223:2;4227:7;4195:27;:40::i;4578:312:88:-;4658:4;-1:-1:-1;;;;;4667:6:88;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:88;:32;-1:-1:-1;;;;;;;;;;;1519:53:111;-1:-1:-1;;;;;1519:53:111;;1441:138;4728:32:88;-1:-1:-1;;;;;4728:42:88;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:88;;;;;;;;;;;4633:251;4578:312::o;1946:145:256:-;1125:4:269;2569:11:257;;2536:72;;-1:-1:-1;;;2536:72:257;;;;;17671:25:486;;;2597:10:257;17712:18:486;;;17705:60;-1:-1:-1;;;;;2569:11:257;;;;2536:54;;17644:18:486;;2536:72:257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2531:176;;2631:65;;-1:-1:-1;;;2631:65:257;;2679:10;2631:65;;;18462:51:486;18529:18;;;18522:34;;;18435:18;;2631:65:257;18288:274:486;6032:538:88;6149:17;-1:-1:-1;;;;;6131:50:88;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:88;;;;;;;;-1:-1:-1;;6131:52:88;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:88;;-1:-1:-1;;;;;1697:32:486;;6493:60:88;;;1679:51:486;1652:18;;6493:60:88;1533:203:486;6127:437:88;-1:-1:-1;;;;;;;;;;;6225:40:88;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:88;;;;;4397:25:486;;;4370:18;;6292:34:88;4251:177:486;6221:120:88;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:88;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:88;;;;;;;;;;;12240:100:89;12307:26;12317:2;12321:7;12307:26;;;;;;;;;;;;:9;:26::i;7293:1884:260:-;-1:-1:-1;;;;;7543:25:260;;7448:4;7543:25;;;:19;:25;;;;;7448:4;7578:1032;7602:22;:13;:20;:22::i;:::-;7598:1;:26;7578:1032;;;7645:20;7668:19;:13;7685:1;7668:16;:19::i;:::-;7706:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7706:33:260;;;;;;;;;:45;7645:42;;-1:-1:-1;7706:45:260;;7701:93;;7771:8;;;7701:93;7807:46;7856:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7856:33:260;;;;;;;;;:47;;;7917:683;7941:22;:13;:20;:22::i;:::-;7937:1;:26;7917:683;;;7988:20;8011:19;:13;8028:1;8011:16;:19::i;:::-;7988:42;;8052:65;8081:12;8095:6;8104:12;8103:13;8052:28;:65::i;:::-;8048:120;;;8141:8;;;8048:120;8189:4;-1:-1:-1;;;;;8189:21:260;;8211:4;8217:12;8231:6;8239:12;8253:5;8261:12;8260:13;8189:85;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;8189:85:260;;;;;;;;-1:-1:-1;;8189:85:260;;;;;;;;;;;;:::i;:::-;;;8185:401;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8519:67;8185:401;;;8367:12;:31;;;;;8395:3;8383:8;:15;;8367:31;8366:71;;;;8405:12;8404:13;:32;;;;;8428:8;8421:3;:15;;8404:32;8362:138;;;8472:5;8465:12;;;;;;;;;;;8362:138;8275:243;8185:401;7970:630;7917:683;7965:3;;7917:683;;;;7631:979;;7578:1032;7626:3;;7578:1032;;;;8654:57;8683:4;8689:6;8698:12;8697:13;8654:28;:57::i;:::-;8650:521;;;8734:4;8727:11;;;;;8650:521;8773:82;;-1:-1:-1;;;8773:82:260;;:4;;:21;;:82;;8795:4;;-1:-1:-1;;442:17:293;8814:6:260;;8830:1;;8834:5;;8841:13;;;8773:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;8773:82:260;;;;;;;;-1:-1:-1;;8773:82:260;;;;;;;;;;;;:::i;:::-;;;8769:366;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9076:59;8769:366;;;8936:12;:31;;;;;8964:3;8952:8;:15;;8936:31;8935:71;;;;8974:12;8973:13;:32;;;;;8997:8;8990:3;:15;;8973:32;8931:130;;;9037:5;9030:12;;;;;;8931:130;8856:219;8769:366;9156:4;9149:11;;;;;12190:129:141;12257:4;12280:32;12285:3;12305:5;12280:4;:32::i;17306:369:89:-;-1:-1:-1;;;;;;;;;;;;;;;;17468:22:89;;17464:91;;17513:31;;-1:-1:-1;;;17513:31:89;;-1:-1:-1;;;;;1697:32:486;;17513:31:89;;;1679:51:486;1652:18;;17513:31:89;1533:203:486;17464:91:89;-1:-1:-1;;;;;17564:27:89;;;;;;;:20;;;:27;;;;;;;;:37;;;;;;;;;;;;;:48;;-1:-1:-1;;17564:48:89;;;;;;;;;;17627:41;;540::486;;;17627::89;;513:18:486;17627:41:89;400:187:486;11683:273:141;11746:16;11774:22;11799:19;11807:3;11799:7;:19::i;10284:165::-;-1:-1:-1;;;;;10417:23:141;;10364:4;5006:21;;;:14;;;:21;;;;;;:26;;10387:55;4910:129;3916:253:125;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:125;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;993:924:124:-;-1:-1:-1;;;;;1173:14:124;;;:18;1169:742;;1211:67;;-1:-1:-1;;;1211:67:124;;-1:-1:-1;;;;;1211:36:124;;;;;:67;;1248:8;;1258:4;;1264:7;;1273:4;;1211:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1211:67:124;;;;;;;;-1:-1:-1;;1211:67:124;;;;;;;;;;;;:::i;:::-;;;1207:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:6;:13;1585:1;1568:18;1564:323;;1672:39;;-1:-1:-1;;;1672:39:124;;-1:-1:-1;;;;;1697:32:486;;1672:39:124;;;1679:51:486;1652:18;;1672:39:124;1533:203:486;1564:323:124;1839:6;1833:13;1824:6;1820:2;1816:15;1809:38;1207:694;-1:-1:-1;;;;;;1325:51:124;;-1:-1:-1;;;1325:51:124;1321:182;;1445:39;;-1:-1:-1;;;1445:39:124;;-1:-1:-1;;;;;1697:32:486;;1445:39:124;;;1679:51:486;1652:18;;1445:39:124;1533:203:486;6244:359:260;6389:11;6420;6416:181;;;6454:46;;-1:-1:-1;;;6454:46:260;;-1:-1:-1;;;;;18480:32:486;;;6454:46:260;;;18462:51:486;18529:18;;;18522:34;;;6454:33:260;;;;;18435:18:486;;6454:46:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6447:53;;;;6416:181;6538:48;;-1:-1:-1;;;6538:48:260;;-1:-1:-1;;;;;18480:32:486;;;6538:48:260;;;18462:51:486;18529:18;;;18522:34;;;6538:35:260;;;;;18435:18:486;;6538:48:260;18288:274:486;9580:456:260;9728:42;;:::i;:::-;9803:68;9845:4;9851:6;9859:11;9803:41;:68::i;:::-;9786:85;;9885:23;:14;:21;:23::i;:::-;9881:149;;;9941:78;9987:4;9993:12;10007:11;9941:45;:78::i;34380:314:138:-;34436:6;-1:-1:-1;;;;;34557:5:138;:33;34553:105;;;34613:34;;-1:-1:-1;;;34613:34:138;;;;;4397:25:486;;;4370:18;;34613:34:138;4251:177:486;34553:105:138;-1:-1:-1;34681:5:138;34380:314::o;17171:193::-;17227:7;17258:1;17250:5;:9;17246:81;;;17282:34;;-1:-1:-1;;;17282:34:138;;;;;4397:25:486;;;4370:18;;17282:34:138;4251:177:486;9071:205:87;9129:30;;3147:66;9186:27;8819:122;2232:149:89;6929:20:87;:18;:20::i;:::-;2335:39:89::1;2359:5;2366:7;2335:23;:39::i;2115:68:90:-:0;6929:20:87;:18;:20::i;2097:190:256:-;2157:13;2243:31;2260:13;2243:16;:31::i;:::-;2189:91;;;;;;;;:::i;:::-;;;;;;;;;;;;;2182:98;;2097:190;:::o;1308:632:134:-;1364:13;1413:14;1430:17;1441:5;1430:10;:17::i;:::-;1450:1;1430:21;1413:38;;1465:20;1499:6;-1:-1:-1;;;;;1488:18:134;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1488:18:134;-1:-1:-1;1465:41:134;-1:-1:-1;1595:28:134;;;1611:2;1595:28;1650:247;-1:-1:-1;;1681:5:134;-1:-1:-1;;;1780:2:134;1769:14;;1764:32;1681:5;1751:46;1841:2;1832:11;;;-1:-1:-1;1861:21:134;1650:247;1861:21;-1:-1:-1;1917:6:134;1308:632;-1:-1:-1;;;1308:632:134:o;12487:135:141:-;12557:4;12580:35;12588:3;12608:5;12580:7;:35::i;9332:150::-;9402:4;9425:50;9430:3;-1:-1:-1;;;;;9450:23:141;;9425:4;:50::i;7084:172:89:-;7150:7;7231:18;;;:9;:18;;;;;;-1:-1:-1;;;;;7231:18:89;;7084:172::o;16378:719::-;-1:-1:-1;;;;;;;;;;;16593:9:89;;:31;;-1:-1:-1;;;;;;16606:18:89;;;;16593:31;16589:460;;;16640:13;16656:22;16670:7;16656:13;:22::i;:::-;16640:38;-1:-1:-1;;;;;;16806:18:89;;;;;;:35;;;16837:4;-1:-1:-1;;;;;16828:13:89;:5;-1:-1:-1;;;;;16828:13:89;;;16806:35;:69;;;;;16846:29;16863:5;16870:4;16846:16;:29::i;:::-;16845:30;16806:69;16802:142;;;16902:27;;-1:-1:-1;;;16902:27:89;;-1:-1:-1;;;;;1697:32:486;;16902:27:89;;;1679:51:486;1652:18;;16902:27:89;1533:203:486;16802:142:89;16962:9;16958:81;;;17016:7;17012:2;-1:-1:-1;;;;;16996:28:89;17005:5;-1:-1:-1;;;;;16996:28:89;;;;;;;;;;;16958:81;16626:423;16589:460;17059:26;;;;:17;;:26;;-1:-1:-1;;17059:26:89;;;:31;;-1:-1:-1;;;;;;17059:31:89;-1:-1:-1;;;;;17059:31:89;;;;;;;;;;16378:719::o;7867:272::-;7970:4;-1:-1:-1;;;;;8005:21:89;;;;;;:127;;;8052:7;-1:-1:-1;;;;;8043:16:89;:5;-1:-1:-1;;;;;8043:16:89;;:52;;;;8063:32;8080:5;8087:7;8063:16;:32::i;:::-;8043:88;;;;8124:7;-1:-1:-1;;;;;8099:32:89;:21;8112:7;8099:12;:21::i;:::-;-1:-1:-1;;;;;8099:32:89;;7986:146;7867:272;-1:-1:-1;;;;7867:272:89:o;2910:1368:141:-;2976:4;3105:21;;;:14;;;:21;;;;;;3141:13;;3137:1135;;3508:18;3529:12;3540:1;3529:8;:12;:::i;:::-;3575:18;;3508:33;;-1:-1:-1;3555:17:141;;3575:22;;3596:1;;3575:22;:::i;:::-;3555:42;;3630:9;3616:10;:23;3612:378;;3659:17;3679:3;:11;;3691:9;3679:22;;;;;;;;:::i;:::-;;;;;;;;;3659:42;;3826:9;3800:3;:11;;3812:10;3800:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3939:25;;;:14;;;:25;;;;;:36;;;3612:378;4068:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4171:3;:14;;:21;4186:5;4171:21;;;;;;;;;;;4164:28;;;4214:4;4207:11;;;;;;;3137:1135;4256:5;4249:12;;;;;10384:856:89;10470:7;-1:-1:-1;;;;;;;;;;;10470:7:89;10559:17;10568:7;10559:8;:17::i;:::-;10544:32;-1:-1:-1;;;;;;10636:18:89;;;10632:86;;10670:37;10687:4;10693;10699:7;10670:16;:37::i;:::-;-1:-1:-1;;;;;10762:18:89;;;10758:258;;10878:48;10895:1;10899:7;10916:1;10920:5;10878:8;:48::i;:::-;-1:-1:-1;;;;;10969:17:89;;;;;;:11;;;:17;;;;;:22;;-1:-1:-1;;10969:22:89;;;10758:258;-1:-1:-1;;;;;11030:16:89;;;11026:109;;-1:-1:-1;;;;;11090:15:89;;;;;;:11;;;:15;;;;;:20;;11109:1;11090:20;;;11026:109;11145:18;;;;:9;;;:18;;;;;;:23;;-1:-1:-1;;;;;;11145:23:89;-1:-1:-1;;;;;11145:23:89;;;;;;;;;11184:27;;11145:18;;11184:27;;;;;;;11229:4;10384:856;-1:-1:-1;;;;;10384:856:89:o;5924:1138:90:-;-1:-1:-1;;;;;;;;;;;6015:33:90;6286:15;6296:4;6286:9;:15::i;:::-;6311:18;6332:28;;;:19;;;:28;;;;;;;;;-1:-1:-1;;;;;6435:20:90;;;;;;;;;;;6261:40;;-1:-1:-1;6332:28:90;6559;;;6555:327;;6603:19;6625:35;;;;;;;;;;;;6675:31;;;;;;:45;;;6792:32;;:19;;;:32;;;;;:45;;;6555:327;6975:28;;;;:19;;;;:28;;;;;;;;6968:35;;;7020;;;;;;;;;7013:42;;;;-1:-1:-1;;5924:1138:90:o;7350:1150::-;-1:-1:-1;;;;;;;;;;;7699:19:90;-1:-1:-1;;;;;;;;;;;1720:31:90;7431:33;;7699:23;;7721:1;;7699:23;:::i;:::-;7732:18;7753:26;;;:17;;;:26;;;;;;8123:12;;;:28;;7674:48;;-1:-1:-1;7753:26:90;;7674:48;;8123:28;;;;;;:::i;:::-;;;;;;;;;8101:50;;8189:11;8162:1;:12;;8175:10;8162:24;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;8268:30;;;:17;;;:30;;;;;;;:43;;;8439:26;;;;;8432:33;8475:12;;;:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;7421:1079;;;;7350:1150;:::o;4577:293::-;-1:-1:-1;;;;;;;;;;;4661:33:90;4769:1;4753:13;4763:2;4753:9;:13::i;:::-;:17;;;;:::i;:::-;-1:-1:-1;;;;;4780:18:90;;;:14;:18;;;;;;;;;;;:26;;;;;;;;:36;;;4826:28;;;:19;;;;:28;;;-1:-1:-1;4826:28:90;:37;4577:293::o;2264:344:111:-;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:111;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;12561:207:89:-;12655:18;12661:2;12665:7;12655:5;:18::i;:::-;12683:78;966:10:91;12739:1:89;12743:2;12747:7;12756:4;12683:33;:78::i;13322:112:141:-;13382:7;13408:19;13416:3;5202:18;;5120:107;13776:135;13847:7;13881:22;13885:3;13897:5;13881:3;:22::i;3537:233:260:-;3643:4;3666:11;:97;;3722:41;;-1:-1:-1;;;3722:41:260;;-1:-1:-1;;;;;1697:32:486;;;3722:41:260;;;1679:51:486;3722:35:260;;;;;1652:18:486;;3722:41:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3666:97::-;3680:39;;-1:-1:-1;;;3680:39:260;;-1:-1:-1;;;;;1697:32:486;;;3680:39:260;;;1679:51:486;3680:33:260;;;;;1652:18:486;;3680:39:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2336:406:141:-;2399:4;5006:21;;;:14;;;:21;;;;;;2415:321;;-1:-1:-1;2457:23:141;;;;;;;;:11;:23;;;;;;;;;;;;;2639:18;;2615:21;;;:14;;;:21;;;;;;:42;;;;2671:11;;2415:321;-1:-1:-1;2720:5:141;2713:12;;6227:109;6283:16;6318:3;:11;;6311:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6227:109;;;:::o;4437:582:125:-;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;:::-;4605:408;;;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:125;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:125;;-1:-1:-1;;;;;1697:32:486;;4933:24:125;;;1679:51:486;1652:18;;4933:24:125;1533:203:486;4853:119:125;-1:-1:-1;4992:10:125;4985:17;;10042:350:260;10185:42;;:::i;:::-;10250:11;:135;;10337:48;;-1:-1:-1;;;10337:48:260;;-1:-1:-1;;;;;1697:32:486;;;10337:48:260;;;1679:51:486;10337:42:260;;;;;1652:18:486;;10337:48:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10250:135::-;10276:46;;-1:-1:-1;;;10276:46:260;;-1:-1:-1;;;;;1697:32:486;;;10276:46:260;;;1679:51:486;10276:40:260;;;;;1652:18:486;;10276:46:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1891:206:296:-;1987:13;;1964:4;;1987:18;:40;;;;-1:-1:-1;2009:13:296;;;;:18;1987:40;:60;;;;-1:-1:-1;2031:11:296;;;;:16;1987:60;:80;;;;-1:-1:-1;2051:11:296;;;;:16;1987:80;:103;;;;-1:-1:-1;;2071:14:296;;;:19;;1891:206::o;10398:424:260:-;10553:42;;:::i;:::-;10618:11;:197;;-1:-1:-1;;;;;10736:43:260;;;;;;:37;:43;;;;;;;;:57;;;;;;;;:79;;10618:197;;;-1:-1:-1;;;;;10644:43:260;;;;;;:37;:43;;;;;;;;:57;;;;;;;;10618:197;10611:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10398:424;-1:-1:-1;;;;10398:424:260:o;7082:141:87:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:87;;;;;;;;;;;2387:219:89;6929:20:87;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;2076:21:89;2555:15:::1;2565:5:::0;2076:21;2555:15:::1;:::i;:::-;-1:-1:-1::0;2580:9:89::1;::::0;::::1;:19;2592:7:::0;2580:9;:19:::1;:::i;29154:916:137:-:0;29207:7;;-1:-1:-1;;;29282:17:137;;29278:103;;-1:-1:-1;;;29319:17:137;;;-1:-1:-1;29364:2:137;29354:12;29278:103;29407:8;29398:5;:17;29394:103;;29444:8;29435:17;;;-1:-1:-1;29480:2:137;29470:12;29394:103;29523:8;29514:5;:17;29510:103;;29560:8;29551:17;;;-1:-1:-1;29596:2:137;29586:12;29510:103;29639:7;29630:5;:16;29626:100;;29675:7;29666:16;;;-1:-1:-1;29710:1:137;29700:11;29626:100;29752:7;29743:5;:16;29739:100;;29788:7;29779:16;;;-1:-1:-1;29823:1:137;29813:11;29739:100;29865:7;29856:5;:16;29852:100;;29901:7;29892:16;;;-1:-1:-1;29936:1:137;29926:11;29852:100;29978:7;29969:5;:16;29965:66;;30015:1;30005:11;30057:6;29154:916;-1:-1:-1;;29154:916:137:o;1671:281:111:-;1748:17;-1:-1:-1;;;;;1748:29:111;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:111;;-1:-1:-1;;;;;1697:32:486;;1805:47:111;;;1679:51:486;1652:18;;1805:47:111;1533:203:486;1744:119:111;-1:-1:-1;;;;;;;;;;;1872:73:111;;-1:-1:-1;;;;;;1872:73:111;-1:-1:-1;;;;;1872:73:111;;;;;;;;;;1671:281::o;6113:122::-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:111;;;;;;;;;;;11562:327:89;-1:-1:-1;;;;;11629:16:89;;11625:87;;11668:33;;-1:-1:-1;;;11668:33:89;;11698:1;11668:33;;;1679:51:486;1652:18;;11668:33:89;1533:203:486;11625:87:89;11721:21;11745:32;11753:2;11757:7;11774:1;11745:7;:32::i;:::-;11721:56;-1:-1:-1;;;;;;11791:27:89;;;11787:96;;11841:31;;-1:-1:-1;;;11841:31:89;;11869:1;11841:31;;;1679:51:486;1652:18;;11841:31:89;1533:203:486;5569:118:141;5636:7;5662:3;:11;;5674:5;5662:18;;;;;;;;:::i;:::-;;;;;;;;;5655:25;;5569:118;;;;:::o;5559:487:125:-;5690:17;;:21;5686:354;;5887:10;5881:17;5943:15;5930:10;5926:2;5922:19;5915:44;5686:354;6010:19;;-1:-1:-1;;;6010:19:125;;;;;;;;;;;5686:354;5559:487;:::o;8485:120:87:-;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:87;;;;;;-1:-1:-1;8485:120:87:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:131:486;-1:-1:-1;;;;;;88:32:486;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:486;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:486;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:486:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:486;;1348:180;-1:-1:-1;1348:180:486:o;1741:131::-;-1:-1:-1;;;;;1816:31:486;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:486:o;2197:127::-;2258:10;2253:3;2249:20;2246:1;2239:31;2289:4;2286:1;2279:15;2313:4;2310:1;2303:15;2329:253;2401:2;2395:9;2443:4;2431:17;;-1:-1:-1;;;;;2463:34:486;;2499:22;;;2460:62;2457:88;;;2525:18;;:::i;:::-;2561:2;2554:22;2329:253;:::o;2587:275::-;2658:2;2652:9;2723:2;2704:13;;-1:-1:-1;;2700:27:486;2688:40;;-1:-1:-1;;;;;2743:34:486;;2779:22;;;2740:62;2737:88;;;2805:18;;:::i;:::-;2841:2;2834:22;2587:275;;-1:-1:-1;2587:275:486:o;2867:183::-;2927:4;-1:-1:-1;;;;;2952:6:486;2949:30;2946:56;;;2982:18;;:::i;:::-;-1:-1:-1;3027:1:486;3023:14;3039:4;3019:25;;2867:183::o;3055:1191::-;3173:6;3181;3189;3242:2;3230:9;3221:7;3217:23;3213:32;3210:52;;;3258:1;3255;3248:12;3210:52;3294:9;3281:23;3271:33;;3323:2;3375;3364:9;3360:18;3347:32;3388:31;3413:5;3388:31;:::i;:::-;3438:5;-1:-1:-1;3494:2:486;3479:18;;3466:32;-1:-1:-1;;;;;3510:30:486;;3507:50;;;3553:1;3550;3543:12;3507:50;3576:22;;3629:4;3621:13;;3617:27;-1:-1:-1;3607:55:486;;3658:1;3655;3648:12;3607:55;3694:2;3681:16;3717:60;3733:43;3773:2;3733:43;:::i;:::-;3717:60;:::i;:::-;3811:15;;;3893:1;3889:10;;;;3881:19;;3877:28;;;3842:12;;;;3917:19;;;3914:39;;;3949:1;3946;3939:12;3914:39;3973:11;;;;3993:223;4009:6;4004:3;4001:15;3993:223;;;4091:3;4078:17;4108:33;4133:7;4108:33;:::i;:::-;4154:20;;4026:12;;;;4194;;;;3993:223;;;4235:5;4225:15;;;;;;;3055:1191;;;;;:::o;4433:492::-;4500:5;4548:4;4536:9;4531:3;4527:19;4523:30;4520:50;;;4566:1;4563;4556:12;4520:50;4588:22;;:::i;:::-;4579:31;;4646:9;4633:23;4626:5;4619:38;4717:2;4706:9;4702:18;4689:32;4684:2;4677:5;4673:14;4666:56;4782:2;4771:9;4767:18;4754:32;4749:2;4742:5;4738:14;4731:56;4847:2;4836:9;4832:18;4819:32;4814:2;4807:5;4803:14;4796:56;4913:3;4902:9;4898:19;4885:33;4879:3;4872:5;4868:15;4861:58;4433:492;;;;:::o;4930:603::-;5096:6;5104;5112;5120;5173:3;5161:9;5152:7;5148:23;5144:33;5141:53;;;5190:1;5187;5180:12;5141:53;5229:9;5216:23;5248:31;5273:5;5248:31;:::i;:::-;5298:5;-1:-1:-1;5350:2:486;5335:18;;5322:32;;-1:-1:-1;5373:67:486;5432:7;5427:2;5412:18;;5373:67;:::i;:::-;5363:77;;5459:68;5519:7;5513:3;5502:9;5498:19;5459:68;:::i;:::-;5449:78;;4930:603;;;;;;;:::o;5538:456::-;5615:6;5623;5631;5684:2;5672:9;5663:7;5659:23;5655:32;5652:52;;;5700:1;5697;5690:12;5652:52;5739:9;5726:23;5758:31;5783:5;5758:31;:::i;:::-;5808:5;-1:-1:-1;5865:2:486;5850:18;;5837:32;5878:33;5837:32;5878:33;:::i;:::-;5538:456;;5930:7;;-1:-1:-1;;;5984:2:486;5969:18;;;;5956:32;;5538:456::o;5999:683::-;6110:6;6118;6126;6134;6142;6195:3;6183:9;6174:7;6170:23;6166:33;6163:53;;;6212:1;6209;6202:12;6163:53;6251:9;6238:23;6270:31;6295:5;6270:31;:::i;:::-;6320:5;-1:-1:-1;6372:2:486;6357:18;;6344:32;;-1:-1:-1;6428:2:486;6413:18;;6400:32;6441:33;6400:32;6441:33;:::i;:::-;6493:7;-1:-1:-1;6552:2:486;6537:18;;6524:32;6565:33;6524:32;6565:33;:::i;:::-;5999:683;;;;-1:-1:-1;5999:683:486;;6671:3;6656:19;6643:33;;5999:683;-1:-1:-1;;5999:683:486:o;6687:530::-;6729:5;6782:3;6775:4;6767:6;6763:17;6759:27;6749:55;;6800:1;6797;6790:12;6749:55;6836:6;6823:20;-1:-1:-1;;;;;6858:2:486;6855:26;6852:52;;;6884:18;;:::i;:::-;6928:55;6971:2;6952:13;;-1:-1:-1;;6948:27:486;6977:4;6944:38;6928:55;:::i;:::-;7008:2;6999:7;6992:19;7054:3;7047:4;7042:2;7034:6;7030:15;7026:26;7023:35;7020:55;;;7071:1;7068;7061:12;7020:55;7136:2;7129:4;7121:6;7117:17;7110:4;7101:7;7097:18;7084:55;7184:1;7159:16;;;7177:4;7155:27;7148:38;;;;7163:7;6687:530;-1:-1:-1;;;6687:530:486:o;7222:455::-;7299:6;7307;7360:2;7348:9;7339:7;7335:23;7331:32;7328:52;;;7376:1;7373;7366:12;7328:52;7415:9;7402:23;7434:31;7459:5;7434:31;:::i;:::-;7484:5;-1:-1:-1;7540:2:486;7525:18;;7512:32;-1:-1:-1;;;;;7556:30:486;;7553:50;;;7599:1;7596;7589:12;7553:50;7622:49;7663:7;7654:6;7643:9;7639:22;7622:49;:::i;:::-;7612:59;;;7222:455;;;;;:::o;7864:541::-;7966:6;7974;7982;7990;8043:3;8031:9;8022:7;8018:23;8014:33;8011:53;;;8060:1;8057;8050:12;8011:53;8099:9;8086:23;8118:31;8143:5;8118:31;:::i;:::-;8168:5;-1:-1:-1;8220:2:486;8205:18;;8192:32;;-1:-1:-1;8276:2:486;8261:18;;8248:32;8289:33;8248:32;8289:33;:::i;:::-;7864:541;;;;-1:-1:-1;8341:7:486;;8395:2;8380:18;8367:32;;-1:-1:-1;;7864:541:486:o;8410:247::-;8469:6;8522:2;8510:9;8501:7;8497:23;8493:32;8490:52;;;8538:1;8535;8528:12;8490:52;8577:9;8564:23;8596:31;8621:5;8596:31;:::i;8662:331::-;8746:6;8754;8807:2;8795:9;8786:7;8782:23;8778:32;8775:52;;;8823:1;8820;8813:12;8775:52;8859:9;8846:23;8836:33;;8919:2;8908:9;8904:18;8891:32;8932:31;8957:5;8932:31;:::i;:::-;8982:5;8972:15;;;8662:331;;;;;:::o;8998:1026::-;9091:6;9099;9152:2;9140:9;9131:7;9127:23;9123:32;9120:52;;;9168:1;9165;9158:12;9120:52;9207:9;9194:23;9226:31;9251:5;9226:31;:::i;:::-;9276:5;-1:-1:-1;9300:2:486;9338:18;;;9325:32;-1:-1:-1;;;;;9369:30:486;;9366:50;;;9412:1;9409;9402:12;9366:50;9435:22;;9488:4;9480:13;;9476:27;-1:-1:-1;9466:55:486;;9517:1;9514;9507:12;9466:55;9553:2;9540:16;9576:60;9592:43;9632:2;9592:43;:::i;9576:60::-;9670:15;;;9752:1;9748:10;;;;9740:19;;9736:28;;;9701:12;;;;9776:19;;;9773:39;;;9808:1;9805;9798:12;9773:39;9832:11;;;;9852:142;9868:6;9863:3;9860:15;9852:142;;;9934:17;;9922:30;;9885:12;;;;9972;;;;9852:142;;;10013:5;10003:15;;;;;;;8998:1026;;;;;:::o;10029:1050::-;10138:6;10146;10199:2;10187:9;10178:7;10174:23;10170:32;10167:52;;;10215:1;10212;10205:12;10167:52;10251:9;10238:23;10228:33;;10280:2;10333;10322:9;10318:18;10305:32;-1:-1:-1;;;;;10352:6:486;10349:30;10346:50;;;10392:1;10389;10382:12;10346:50;10415:22;;10468:4;10460:13;;10456:27;-1:-1:-1;10446:55:486;;10497:1;10494;10487:12;10446:55;10533:2;10520:16;10556:60;10572:43;10612:2;10572:43;:::i;10556:60::-;10650:15;;;10732:1;10728:10;;;;10720:19;;10716:28;;;10681:12;;;;10756:19;;;10753:39;;;10788:1;10785;10778:12;10753:39;10812:11;;;;10832:217;10848:6;10843:3;10840:15;10832:217;;;10928:3;10915:17;10945:31;10970:5;10945:31;:::i;:::-;10989:18;;10865:12;;;;11027;;;;10832:217;;11084:118;11170:5;11163:13;11156:21;11149:5;11146:32;11136:60;;11192:1;11189;11182:12;11207:382;11272:6;11280;11333:2;11321:9;11312:7;11308:23;11304:32;11301:52;;;11349:1;11346;11339:12;11301:52;11388:9;11375:23;11407:31;11432:5;11407:31;:::i;:::-;11457:5;-1:-1:-1;11514:2:486;11499:18;;11486:32;11527:30;11486:32;11527:30;:::i;11594:614::-;11696:6;11704;11712;11720;11773:3;11761:9;11752:7;11748:23;11744:33;11741:53;;;11790:1;11787;11780:12;11741:53;11829:9;11816:23;11848:31;11873:5;11848:31;:::i;:::-;11898:5;-1:-1:-1;11950:2:486;11935:18;;11922:32;;-1:-1:-1;12006:2:486;11991:18;;11978:32;12019:33;11978:32;12019:33;:::i;:::-;12071:7;-1:-1:-1;12130:2:486;12115:18;;12102:32;12143:33;12102:32;12143:33;:::i;:::-;11594:614;;;;-1:-1:-1;11594:614:486;;-1:-1:-1;;11594:614:486:o;12213:626::-;12310:6;12318;12371:2;12359:9;12350:7;12346:23;12342:32;12339:52;;;12387:1;12384;12377:12;12339:52;12427:9;12414:23;-1:-1:-1;;;;;12497:2:486;12489:6;12486:14;12483:34;;;12513:1;12510;12503:12;12483:34;12551:6;12540:9;12536:22;12526:32;;12596:7;12589:4;12585:2;12581:13;12577:27;12567:55;;12618:1;12615;12608:12;12567:55;12658:2;12645:16;12684:2;12676:6;12673:14;12670:34;;;12700:1;12697;12690:12;12670:34;12753:7;12748:2;12738:6;12735:1;12731:14;12727:2;12723:23;12719:32;12716:45;12713:65;;;12774:1;12771;12764:12;12713:65;12805:2;12797:11;;;;;12827:6;;-1:-1:-1;12213:626:486;;-1:-1:-1;;;;12213:626:486:o;12844:801::-;13004:4;13033:2;13073;13062:9;13058:18;13103:2;13092:9;13085:21;13126:6;13161;13155:13;13192:6;13184;13177:22;13230:2;13219:9;13215:18;13208:25;;13292:2;13282:6;13279:1;13275:14;13264:9;13260:30;13256:39;13242:53;;13330:2;13322:6;13318:15;13351:1;13361:255;13375:6;13372:1;13369:13;13361:255;;;13468:2;13464:7;13452:9;13444:6;13440:22;13436:36;13431:3;13424:49;13496:40;13529:6;13520;13514:13;13496:40;:::i;:::-;13486:50;-1:-1:-1;13594:12:486;;;;13559:15;;;;13397:1;13390:9;13361:255;;;-1:-1:-1;13633:6:486;;12844:801;-1:-1:-1;;;;;;;12844:801:486:o;13650:665::-;13745:6;13753;13761;13769;13822:3;13810:9;13801:7;13797:23;13793:33;13790:53;;;13839:1;13836;13829:12;13790:53;13878:9;13865:23;13897:31;13922:5;13897:31;:::i;:::-;13947:5;-1:-1:-1;14004:2:486;13989:18;;13976:32;14017:33;13976:32;14017:33;:::i;:::-;14069:7;-1:-1:-1;14123:2:486;14108:18;;14095:32;;-1:-1:-1;14178:2:486;14163:18;;14150:32;-1:-1:-1;;;;;14194:30:486;;14191:50;;;14237:1;14234;14227:12;14191:50;14260:49;14301:7;14292:6;14281:9;14277:22;14260:49;:::i;:::-;14250:59;;;13650:665;;;;;;;:::o;14320:632::-;14491:2;14543:21;;;14613:13;;14516:18;;;14635:22;;;14462:4;;14491:2;14714:15;;;;14688:2;14673:18;;;14462:4;14757:169;14771:6;14768:1;14765:13;14757:169;;;14832:13;;14820:26;;14901:15;;;;14866:12;;;;14793:1;14786:9;14757:169;;;-1:-1:-1;14943:3:486;;14320:632;-1:-1:-1;;;;;;14320:632:486:o;14957:819::-;15074:6;15082;15090;15098;15106;15114;15167:3;15155:9;15146:7;15142:23;15138:33;15135:53;;;15184:1;15181;15174:12;15135:53;15223:9;15210:23;15242:31;15267:5;15242:31;:::i;:::-;15292:5;-1:-1:-1;15344:2:486;15329:18;;15316:32;;-1:-1:-1;15400:2:486;15385:18;;15372:32;15413:33;15372:32;15413:33;:::i;:::-;15465:7;-1:-1:-1;15524:2:486;15509:18;;15496:32;15537:33;15496:32;15537:33;:::i;:::-;15589:7;-1:-1:-1;15643:3:486;15628:19;;15615:33;;-1:-1:-1;15700:3:486;15685:19;;15672:33;15714:30;15672:33;15714:30;:::i;:::-;15763:7;15753:17;;;14957:819;;;;;;;;:::o;16056:658::-;16227:2;16279:21;;;16349:13;;16252:18;;;16371:22;;;16198:4;;16227:2;16450:15;;;;16424:2;16409:18;;;16198:4;16493:195;16507:6;16504:1;16501:13;16493:195;;;16572:13;;-1:-1:-1;;;;;16568:39:486;16556:52;;16663:15;;;;16628:12;;;;16604:1;16522:9;16493:195;;16719:388;16787:6;16795;16848:2;16836:9;16827:7;16823:23;16819:32;16816:52;;;16864:1;16861;16854:12;16816:52;16903:9;16890:23;16922:31;16947:5;16922:31;:::i;:::-;16972:5;-1:-1:-1;17029:2:486;17014:18;;17001:32;17042:33;17001:32;17042:33;:::i;17112:380::-;17191:1;17187:12;;;;17234;;;17255:61;;17309:4;17301:6;17297:17;17287:27;;17255:61;17362:2;17354:6;17351:14;17331:18;17328:38;17325:161;;17408:10;17403:3;17399:20;17396:1;17389:31;17443:4;17440:1;17433:15;17471:4;17468:1;17461:15;17325:161;;17112:380;;;:::o;17776:127::-;17837:10;17832:3;17828:20;17825:1;17818:31;17868:4;17865:1;17858:15;17892:4;17889:1;17882:15;18567:127;18628:10;18623:3;18619:20;18616:1;18609:31;18659:4;18656:1;18649:15;18683:4;18680:1;18673:15;18699:135;18738:3;18759:17;;;18756:43;;18779:18;;:::i;:::-;-1:-1:-1;18826:1:486;18815:13;;18699:135::o;18839:245::-;18906:6;18959:2;18947:9;18938:7;18934:23;18930:32;18927:52;;;18975:1;18972;18965:12;18927:52;19007:9;19001:16;19026:28;19048:5;19026:28;:::i;19089:128::-;19156:9;;;19177:11;;;19174:37;;;19191:18;;:::i;19558:521::-;19635:4;19641:6;19701:11;19688:25;19795:2;19791:7;19780:8;19764:14;19760:29;19756:43;19736:18;19732:68;19722:96;;19814:1;19811;19804:12;19722:96;19841:33;;19893:20;;;-1:-1:-1;;;;;;19925:30:486;;19922:50;;;19968:1;19965;19958:12;19922:50;20001:4;19989:17;;-1:-1:-1;20032:14:486;20028:27;;;20018:38;;20015:58;;;20069:1;20066;20059:12;20015:58;19558:521;;;;;:::o;20084:440::-;20313:6;20305;20300:3;20287:33;20269:3;20348:6;20343:3;20339:16;20375:1;20371:2;20364:13;20406:6;20400:13;20422:65;20480:6;20476:2;20469:4;20461:6;20457:17;20422:65;:::i;:::-;20503:15;;20084:440;-1:-1:-1;;;;;20084:440:486:o;21233:216::-;21297:9;;;21325:11;;;21272:3;21355:9;;21383:10;;21379:19;;21408:10;;21400:19;;21376:44;21373:70;;;21423:18;;:::i;21668:496::-;21847:3;21885:6;21879:13;21901:66;21960:6;21955:3;21948:4;21940:6;21936:17;21901:66;:::i;:::-;22030:13;;21989:16;;;;22052:70;22030:13;21989:16;22099:4;22087:17;;22052:70;:::i;:::-;22138:20;;21668:496;-1:-1:-1;;;;21668:496:486:o;22503:474::-;22825:3;22810:19;;22838:57;22814:9;22877:6;22261:5;22255:12;22250:3;22243:25;22317:4;22310:5;22306:16;22300:23;22293:4;22288:3;22284:14;22277:47;22373:4;22366:5;22362:16;22356:23;22349:4;22344:3;22340:14;22333:47;22429:4;22422:5;22418:16;22412:23;22405:4;22400:3;22396:14;22389:47;22485:4;22478:5;22474:16;22468:23;22461:4;22456:3;22452:14;22445:47;;;22169:329;22838:57;22255:12;;22966:3;22951:19;;22243:25;22317:4;22306:16;;22300:23;22284:14;;;22277:47;22373:4;22362:16;;22356:23;22340:14;;;22333:47;22429:4;22418:16;;22412:23;22396:14;;;22389:47;22485:4;22474:16;;22468:23;22452:14;;;22445:47;22904:67;22169:329;23540:184;23610:6;23663:2;23651:9;23642:7;23638:23;23634:32;23631:52;;;23679:1;23676;23669:12;23631:52;-1:-1:-1;23702:16:486;;23540:184;-1:-1:-1;23540:184:486:o;23729:626::-;-1:-1:-1;;;;;24082:15:486;;;24064:34;;24129:2;24114:18;;24107:34;;;;24177:15;;;24172:2;24157:18;;24150:43;24229:15;;24224:2;24209:18;;24202:43;24276:3;24261:19;;24254:35;;;;24333:14;;24326:22;24044:3;24305:19;;24298:51;24013:3;23998:19;;23729:626::o;24549:287::-;24678:3;24716:6;24710:13;24732:66;24791:6;24786:3;24779:4;24771:6;24767:17;24732:66;:::i;:::-;24814:16;;;;;24549:287;-1:-1:-1;;24549:287:486:o;24841:489::-;-1:-1:-1;;;;;25110:15:486;;;25092:34;;25162:15;;25157:2;25142:18;;25135:43;25209:2;25194:18;;25187:34;;;25257:3;25252:2;25237:18;;25230:31;;;25035:4;;25278:46;;25304:19;;25296:6;25278:46;:::i;25335:249::-;25404:6;25457:2;25445:9;25436:7;25432:23;25428:32;25425:52;;;25473:1;25470;25463:12;25425:52;25505:9;25499:16;25524:30;25548:5;25524:30;:::i;25769:643::-;26121:34;26116:3;26109:47;-1:-1:-1;;;26181:2:486;26176:3;26172:12;26165:28;26091:3;26222:6;26216:13;26238:73;26304:6;26299:2;26294:3;26290:12;26285:2;26277:6;26273:15;26238:73;:::i;:::-;-1:-1:-1;;;26370:2:486;26330:16;;;;26362:11;;;26355:24;-1:-1:-1;26403:2:486;26395:11;;25769:643;-1:-1:-1;25769:643:486:o;26549:127::-;26610:10;26605:3;26601:20;26598:1;26591:31;26641:4;26638:1;26631:15;26665:4;26662:1;26655:15;26681:532;26791:6;26844:3;26832:9;26823:7;26819:23;26815:33;26812:53;;;26861:1;26858;26851:12;26812:53;26887:22;;:::i;:::-;26938:9;26932:16;26925:5;26918:31;27002:2;26991:9;26987:18;26981:25;26976:2;26969:5;26965:14;26958:49;27060:2;27049:9;27045:18;27039:25;27034:2;27027:5;27023:14;27016:49;27118:2;27107:9;27103:18;27097:25;27092:2;27085:5;27081:14;27074:49;27177:3;27166:9;27162:19;27156:26;27150:3;27143:5;27139:15;27132:51;27202:5;27192:15;;;26681:532;;;;:::o;27344:518::-;27446:2;27441:3;27438:11;27435:421;;;27482:5;27479:1;27472:16;27526:4;27523:1;27513:18;27596:2;27584:10;27580:19;27577:1;27573:27;27567:4;27563:38;27632:4;27620:10;27617:20;27614:47;;;-1:-1:-1;27655:4:486;27614:47;27710:2;27705:3;27701:12;27698:1;27694:20;27688:4;27684:31;27674:41;;27765:81;27783:2;27776:5;27773:13;27765:81;;;27842:1;27828:16;;27809:1;27798:13;27765:81;;28038:1345;28164:3;28158:10;-1:-1:-1;;;;;28183:6:486;28180:30;28177:56;;;28213:18;;:::i;:::-;28242:97;28332:6;28292:38;28324:4;28318:11;28292:38;:::i;:::-;28286:4;28242:97;:::i;:::-;28394:4;;28451:2;28440:14;;28468:1;28463:663;;;;29170:1;29187:6;29184:89;;;-1:-1:-1;29239:19:486;;;29233:26;29184:89;-1:-1:-1;;27995:1:486;27991:11;;;27987:24;27983:29;27973:40;28019:1;28015:11;;;27970:57;29286:81;;28433:944;;28463:663;27291:1;27284:14;;;27328:4;27315:18;;-1:-1:-1;;28499:20:486;;;28617:236;28631:7;28628:1;28625:14;28617:236;;;28720:19;;;28714:26;28699:42;;28812:27;;;;28780:1;28768:14;;;;28647:19;;28617:236;;;28621:3;28881:6;28872:7;28869:19;28866:201;;;28942:19;;;28936:26;-1:-1:-1;;29025:1:486;29021:14;;;29037:3;29017:24;29013:37;29009:42;28994:58;28979:74;;28866:201;-1:-1:-1;;;;;29113:1:486;29097:14;;;29093:22;29080:36;;-1:-1:-1;28038:1345:486:o", "linkReferences": {}, "immutableReferences": { - "52969": [ - { "start": 8644, "length": 32 }, - { "start": 8685, "length": 32 }, - { "start": 9149, "length": 32 } + "53685": [ + { "start": 7693, "length": 32 }, + { "start": 7734, "length": 32 }, + { "start": 8198, "length": 32 } ] } }, @@ -1156,8 +1083,6 @@ "createCollection()": "647f1a9c", "getApproved(uint256)": "081812fc", "getBorrowOfferAPR(address,uint256,address,address,uint256)": "495e6d89", - "getCollectionMarketCopyBorrowOfferConfig(uint256,address)": "9c71db1e", - "getCollectionMarketCopyLoanOfferConfig(uint256,address)": "49b6d14f", "getCollectionMarketRateProviders(uint256,address)": "dd2bc302", "getLimitOrderAPR(address,uint256,address,address,uint256,bool)": "c260d206", "getLoanOfferAPR(address,uint256,address,address,uint256)": "5fb7f10c", @@ -1178,7 +1103,7 @@ "safeTransferFrom(address,address,uint256)": "42842e0e", "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", "setApprovalForAll(address,bool)": "a22cb465", - "setCollectionMarketConfigs(uint256,address[],(uint256,uint256,uint256,uint256,int256)[],(uint256,uint256,uint256,uint256,int256)[])": "15d5cf99", + "setUserCollectionCopyLimitOrderConfigs(address,uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": "18d5932d", "subscribeUserToCollections(address,uint256[])": "93c0d3f3", "supportsInterface(bytes4)": "01ffc9a7", "symbol()": "95d89b41", @@ -1190,7 +1115,7 @@ "unsubscribeUserFromCollections(address,uint256[])": "de1eb880", "upgradeToAndCall(address,bytes)": "4f1ef286" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ARRAY_LENGTHS_MISMATCH\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC721EnumerableForbiddenBatchMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"ERC721OutOfBoundsIndex\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"}],\"name\":\"INVALID_APR_RANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"INVALID_MARKET\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"INVALID_TENOR_RANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"InvalidCollectionId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"name\":\"InvalidCollectionMarketRateProvider\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"InvalidTenor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"MarketNotInCollection\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"OnlySizeFactory\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"indexed\":false,\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"indexed\":false,\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"}],\"name\":\"AddMarketToCollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"name\":\"AddRateProviderToMarket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"RemoveMarketFromCollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"name\":\"RemoveRateProviderFromMarket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"SubscribedToCollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"UnsubscribedFromCollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize[]\",\"name\":\"markets\",\"type\":\"address[]\"}],\"name\":\"addMarketsToCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"rateProviders\",\"type\":\"address[]\"}],\"name\":\"addRateProvidersToCollectionMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"collectionContainsMarket\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createCollection\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getBorrowOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getCollectionMarketCopyBorrowOfferConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLimitOrder\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getCollectionMarketCopyLoanOfferConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLimitOrder\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getCollectionMarketRateProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isLoanOffer\",\"type\":\"bool\"}],\"name\":\"getLimitOrderAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getLoanOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getSubscribedCollections\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISizeFactory\",\"name\":\"_sizeFactory\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"isBorrowAPRLowerThanLoanOfferAPRs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"name\":\"isCopyingCollectionMarketRateProvider\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanAPR\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"isLoanAPRGreaterThanBorrowOfferAPRs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"isSubscribedToCollection\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"isValidCollectionId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize[]\",\"name\":\"markets\",\"type\":\"address[]\"}],\"name\":\"removeMarketsFromCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"rateProviders\",\"type\":\"address[]\"}],\"name\":\"removeRateProvidersFromCollectionMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize[]\",\"name\":\"markets\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig[]\",\"name\":\"copyLoanOfferConfigs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig[]\",\"name\":\"copyBorrowOfferConfigs\",\"type\":\"tuple[]\"}],\"name\":\"setCollectionMarketConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"name\":\"subscribeUserToCollections\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"name\":\"unsubscribeUserFromCollections\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Size (https://size.credit/)\",\"custom:security-contact\":\"security@size.credit\",\"errors\":{\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC721EnumerableForbiddenBatchMint()\":[{\"details\":\"Batch mint is not allowed.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721OutOfBoundsIndex(address,uint256)\":[{\"details\":\"An `owner`'s token query was out of bounds for `index`. NOTE: The owner being `address(0)` indicates a global out of bounds index.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"addMarketsToCollection(uint256,address[])\":{\"details\":\"By default, the collection market configs are set to \\\"full\\\", ie, the rate providers limit orders are fully copied without alterations\",\"params\":{\"collectionId\":\"The collection ID\",\"markets\":\"The markets to add\"}},\"addRateProvidersToCollectionMarket(uint256,address,address[])\":{\"params\":{\"collectionId\":\"The collection ID\",\"market\":\"The market to add the rate providers to\",\"rateProviders\":\"The rate providers to add\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"collectionContainsMarket(uint256,address)\":{\"details\":\"Should not revert\",\"params\":{\"collectionId\":\"The collection ID to check\",\"market\":\"The market to check\"},\"returns\":{\"_0\":\"True if the collection contains the market, false otherwise\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createCollection()\":{\"details\":\"Mints a ERC721EnumerableUpgradeable NFT collection to the curator. Can be used to transfer ownership of the collection to another curator.\",\"returns\":{\"collectionId\":\"The collection ID\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getBorrowOfferAPR(address,uint256,address,address,uint256)\":{\"details\":\"If collectionId is RESERVED_ID, selects the user-defined yield curve\",\"params\":{\"collectionId\":\"The collection ID to get the borrow offer APR for\",\"market\":\"The market to get the borrow offer APR for\",\"rateProvider\":\"The rate provider to get the borrow offer APR for\",\"tenor\":\"The tenor to get the borrow offer APR for\",\"user\":\"The user to get the borrow offer APR for\"},\"returns\":{\"apr\":\"The borrow offer APR\"}},\"getCollectionMarketCopyBorrowOfferConfig(uint256,address)\":{\"params\":{\"collectionId\":\"The collection ID to get the copy borrow offer config for\",\"market\":\"The market to get the copy borrow offer config for\"},\"returns\":{\"copyLimitOrder\":\"config The copy borrow offer config\"}},\"getCollectionMarketCopyLoanOfferConfig(uint256,address)\":{\"params\":{\"collectionId\":\"The collection ID to get the copy loan offer config for\",\"market\":\"The market to get the copy loan offer config for\"},\"returns\":{\"copyLimitOrder\":\"config The copy loan offer config\"}},\"getCollectionMarketRateProviders(uint256,address)\":{\"params\":{\"collectionId\":\"The collection ID to get the rate providers for\",\"market\":\"The market to get the rate providers for\"},\"returns\":{\"_0\":\"The rate providers for the collection market\"}},\"getLoanOfferAPR(address,uint256,address,address,uint256)\":{\"details\":\"If collectionId is RESERVED_ID, selects the user-defined yield curve\",\"params\":{\"collectionId\":\"The collection ID to get the loan offer APR for\",\"market\":\"The market to get the loan offer APR for\",\"rateProvider\":\"The rate provider to get the loan offer APR for\",\"tenor\":\"The tenor to get the loan offer APR for\",\"user\":\"The user to get the loan offer APR for\"},\"returns\":{\"apr\":\"The loan offer APR\"}},\"getSubscribedCollections(address)\":{\"details\":\"Should not revert\",\"params\":{\"user\":\"The user to get the subscribed collections for\"},\"returns\":{\"collectionIds\":\"The subscribed collections for the user\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)\":{\"details\":\"Perform this check in O(C * R + 1), where C is the number of subscribed collections, R is the number of rate providers, and 1 is for the user-defined APR check Users should be aware that subscribing to too many collections / rate providers may result in market order reverts due to gas limits\",\"params\":{\"borrowAPR\":\"The borrow APR\",\"market\":\"The market\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"isLower True if the borrow APR is lower than the loan offer APRs, false otherwise\"}},\"isCopyingCollectionMarketRateProvider(address,uint256,address,address)\":{\"details\":\"Should not revert\",\"params\":{\"collectionId\":\"The collection ID to check\",\"market\":\"The market to check\",\"rateProvider\":\"The rate provider to check\",\"user\":\"The user to check\"},\"returns\":{\"_0\":\"True if the user is copying the collection market rate provider, false otherwise\"}},\"isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)\":{\"details\":\"Perform this check in O(C * R + 1), where C is the number of subscribed collections, R is the number of rate providers, and 1 is for the user-defined APR check Users should be aware that subscribing to too many collections / rate providers may result in market order reverts due to gas limits\",\"params\":{\"loanAPR\":\"The loan APR\",\"market\":\"The market\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"isGreater True if the loan APR is greater than the borrow offer APRs, false otherwise\"}},\"isSubscribedToCollection(address,uint256)\":{\"details\":\"Should not revert\",\"params\":{\"collectionId\":\"The collection ID to check\",\"user\":\"The user to check\"},\"returns\":{\"_0\":\"True if the user is subscribed to the collection, false otherwise\"}},\"isValidCollectionId(uint256)\":{\"details\":\"Should not revert\",\"params\":{\"collectionId\":\"The collection ID to check\"},\"returns\":{\"_0\":\"True if the collection ID is valid, false otherwise\"}},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"removeMarketsFromCollection(uint256,address[])\":{\"params\":{\"collectionId\":\"The collection ID\",\"markets\":\"The markets to remove\"}},\"removeRateProvidersFromCollectionMarket(uint256,address,address[])\":{\"params\":{\"collectionId\":\"The collection ID\",\"market\":\"The market to remove the rate providers from\",\"rateProviders\":\"The rate providers to remove\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setCollectionMarketConfigs(uint256,address[],(uint256,uint256,uint256,uint256,int256)[],(uint256,uint256,uint256,uint256,int256)[])\":{\"details\":\"This function has the same effect as calling `addMarketsToCollection` but with a custom config for each market\",\"params\":{\"collectionId\":\"The collection ID\",\"copyBorrowOfferConfigs\":\"The copy limit order parameters for borrow offers\",\"copyLoanOfferConfigs\":\"The copy limit order parameters for loan offers\",\"markets\":\"The markets to set the configs for\"}},\"subscribeUserToCollections(address,uint256[])\":{\"details\":\"Only callable by the SizeFactory\",\"params\":{\"collectionIds\":\"The collection IDs to subscribe the user to\",\"user\":\"The user to subscribe\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"unsubscribeUserFromCollections(address,uint256[])\":{\"details\":\"Only callable by the SizeFactory\",\"params\":{\"collectionIds\":\"The collection IDs to unsubscribe the user from\",\"user\":\"The user to unsubscribe\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"CollectionsManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addMarketsToCollection(uint256,address[])\":{\"notice\":\"Adds markets to a collection\"},\"addRateProvidersToCollectionMarket(uint256,address,address[])\":{\"notice\":\"Adds rate providers to a collection market\"},\"collectionContainsMarket(uint256,address)\":{\"notice\":\"Check if a collection contains a market\"},\"createCollection()\":{\"notice\":\"Creates a new collection\"},\"getBorrowOfferAPR(address,uint256,address,address,uint256)\":{\"notice\":\"Get the borrow offer APR for a user, collection, market, rate provider and tenor\"},\"getCollectionMarketCopyBorrowOfferConfig(uint256,address)\":{\"notice\":\"Get the copy borrow offer config for a collection market\"},\"getCollectionMarketCopyLoanOfferConfig(uint256,address)\":{\"notice\":\"Get the copy loan offer config for a collection market\"},\"getCollectionMarketRateProviders(uint256,address)\":{\"notice\":\"Get the rate providers for a collection market\"},\"getLoanOfferAPR(address,uint256,address,address,uint256)\":{\"notice\":\"Get the loan offer APR for a user, collection, market, rate provider and tenor\"},\"getSubscribedCollections(address)\":{\"notice\":\"Get the subscribed collections for a user\"},\"isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)\":{\"notice\":\"Check if the borrow APR is lower than the loan offer APRs\"},\"isCopyingCollectionMarketRateProvider(address,uint256,address,address)\":{\"notice\":\"Check if a user is copying a collection market rate provider\"},\"isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)\":{\"notice\":\"Check if the loan APR is greater than the borrow offer APRs\"},\"isSubscribedToCollection(address,uint256)\":{\"notice\":\"Check if a user is subscribed to a collection\"},\"isValidCollectionId(uint256)\":{\"notice\":\"Check if a collection ID is valid\"},\"removeMarketsFromCollection(uint256,address[])\":{\"notice\":\"Removes markets from a collection\"},\"removeRateProvidersFromCollectionMarket(uint256,address,address[])\":{\"notice\":\"Removes rate providers from a collection market\"},\"setCollectionMarketConfigs(uint256,address[],(uint256,uint256,uint256,uint256,int256)[],(uint256,uint256,uint256,uint256,int256)[])\":{\"notice\":\"Sets the collection market configs\"},\"subscribeUserToCollections(address,uint256[])\":{\"notice\":\"Subscribe a user to collections\"},\"unsubscribeUserFromCollections(address,uint256[])\":{\"notice\":\"Unsubscribe a user from collections\"}},\"notice\":\"See the documentation in {ICollectionsManager}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/collections/CollectionsManager.sol\":\"CollectionsManager\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solady/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/=lib/properties/lib/solmate/src/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20.sol\":{\"keccak256\":\"0xf57d62241e553696a1324d225663ba2e1a51db0a51ca236d0c1b009d89b6284c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d327db93b636790909aa137124f30a856ac1631cb79c476aa188f9627fda8d03\",\"dweb:/ipfs/QmaxpmEoBFioeNYmpxJemyZ7aYF2nX1NKW1XDqREm7i6es\"]},\"lib/aave-v3-core/contracts/interfaces/IAToken.sol\":{\"keccak256\":\"0x4ec2e3180174f248c9308e03fa837d44ca91ca6c1ad67c9951a2951d46948417\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://764b8e56a62c7277efdd6dc29e1ce3f88cb997613a3142a79effa5b3d908a3fa\",\"dweb:/ipfs/QmWAF7rDjyVqkwDR6RGRwYvB3V2fe3T7G1ZSC9UuHjAAZf\"]},\"lib/aave-v3-core/contracts/interfaces/IAaveIncentivesController.sol\":{\"keccak256\":\"0x906b896fdcb878d1472f740a70680f26e9a601dc28701113ab1f89cd9edce0bd\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b17473265a3ec2ec73dac797e0e60c147590f4e5cc7016f8eb61efbe072c49e0\",\"dweb:/ipfs/QmchQGeuyUw3VW4Kgwfg5Ys9ky1F7Q6QCcKbywbRaEUPt7\"]},\"lib/aave-v3-core/contracts/interfaces/IInitializableAToken.sol\":{\"keccak256\":\"0xb7c0da4c50ab10ce00e2325e649297923497738350092f64ef4b259307039dee\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://67af6435a258e6d08151b0c37884475e040c2939c76cfb0ba7afd6264c45be87\",\"dweb:/ipfs/Qmf5wup15foyfWrGvhiZDyasJn9XZFn4Vs14Dui9smeLa3\"]},\"lib/aave-v3-core/contracts/interfaces/IPool.sol\":{\"keccak256\":\"0xbfd2077251c8dc766a56d45f4b03eb07f3441323e79c0f794efea3657a99747f\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c6ff6221de0ea877932c73c0b99d3e4535f293053ae44f9f9d6b9d265e9af2f6\",\"dweb:/ipfs/QmSTaEKrhz1xNVnx4oBzWw8DenYPShVzJoP1A9GTEWkAzX\"]},\"lib/aave-v3-core/contracts/interfaces/IPoolAddressesProvider.sol\":{\"keccak256\":\"0x33d4308d9407b4ee2297fc4ba5acce1a96a6c658189e2778a4f6b90e032fb3b5\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://978336a2a40229ccc7749344be890862ea12e17e9fffe5bb977ba3841de07b5a\",\"dweb:/ipfs/QmScNrQfDSPg1afJmkCty6fZkETUrWTmEXWeTmHoe7mSqa\"]},\"lib/aave-v3-core/contracts/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0x72b3ea433cd3386f369f1643a154bf233ec60c02acd02c32088a97556207d2e4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a5907c61cf65126001feebd94c7a869eff95045106d97e21bf7f0d3de22caf9d\",\"dweb:/ipfs/QmPARkA7YpsBtd1F3JgszZREJk6TAkqRLBkjWZUadCu3sM\"]},\"lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol\":{\"keccak256\":\"0x618fe1876e322a10269e4a96e61e516bbbec883cb79e20b508f8010027178f07\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d2814d57ad47ba13959bf9a108c25374828a370f8d64b5adb7564876927a3a06\",\"dweb:/ipfs/Qmf9xfz7svNZAzgUHUTAj6gVC7SHiT7S4obfo1Sg1Fwzbx\"]},\"lib/aave-v3-core/contracts/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x771cb99fd8519c974f7e12130387c4d9a997a6e8d0ac10e4303b842fe53efa88\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f41689d1d58bc13678c749bae8830f5a8b19b89cd135e962bf07d483350f828\",\"dweb:/ipfs/QmQSNGDxjYGqT1GU2CZzsWUTNcAtcfkg1jDGTH516nCAfN\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x0d4d7d19a052a2ef9d17b28450133631188b895e1755747fa8ad0280aadfb534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838551e10cc07e570b70aee1078e490658d3a0ab8f4adfd4f3f2a565200753da\",\"dweb:/ipfs/QmceT7R3Pqzywyxr3MSEA7VXU4axZAPS6BLy92iV97rGdG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0x374714bef85e753a13fdf792ca567ef734351029265f2cce8db533d7a942c740\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6024252b335cecf3bcf3502cfb883ffc7f8e72926734f848b0684eccaeac8027\",\"dweb:/ipfs/QmevY4P9E3eEDZ7msGJ5aFmbPGLWZr976g3EUwWeUs1JGV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0xe5775eb1fb17165cd191e8f8b2232dbea8765e7e610eaa3d6e52feead793ec5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://352614aea75c3d913cbcabb528be3d6c3335c3c77da41d59486a3193069dd095\",\"dweb:/ipfs/QmR3Nabxfme6tHrAMJCyK4MWZtpund2c4R7aFKmea3sGZM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x00c23b80f74717a6765b606001c5c633116020d488ee8f53600685b8200e4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73d0bd5ff47377a97d52149a805d82112f88c9f4ae853ef246a536bd31ce1da\",\"dweb:/ipfs/QmagG3Yup65JQPSMZScubYTCeyuUyvKLxBM3X1er6xWWxf\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7b6690c21e94a45b825631a12581b40a753ea827de5ac9127a6b5833411317f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00045f2c18d7866618c65819fe180a9a9dab25c1974fab35069bdac9cf624b6b\",\"dweb:/ipfs/QmYk62QRqGHJ3rjqfEtbfEGFHWsenv5tNMbeMfq5HkTP44\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5d0c69ef32eae686acc22acfb1a54df9c91356e69adec593aa69eba83ae8f6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7a9fca2cb3d802c4f8a2d0fda84ccc7f880264885801c7df08373501dd22282\",\"dweb:/ipfs/QmdtM2Loz9NzNTuQ3RXNQCPBjoPUJw35Ukpt1MSM9XH3cD\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xecd5f3c702f549fb88555e44e5f2415a4dfd6db09081aec7e98c26b6a3739c06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed40e907a6d80458a0556a609d0d3991d718c20f9f1f21475e5ec739af523231\",\"dweb:/ipfs/QmejkwADsZRxkusNU94sswMJfpLrbq8RkJTbNccUEQpc7Y\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0x4e64844c56061cd90e0a80de73534a9166704c43eed579eb83f90bc2780ce968\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cba4fab5cebdddf644b901994a7f0f52b98885d4c56012f4dc51d52c2bf9de0e\",\"dweb:/ipfs/QmVyyrRmqXrAiapewWunRVgiPVFJHpH2hKiE1py1svMSNV\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol\":{\"keccak256\":\"0xf80abf13fb1fafc127ba4e792f240dd8ea7c8c893978cdfd8439c27fae9a037b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b04fc72a656bbf3631e9c2e67b9870a2d9d235185e833fe050e9606e6816a9aa\",\"dweb:/ipfs/QmUcz4bkEkJ9pwzFu1C3n97hBQ3st9U6qTAqCdyFwddKco\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x44fa2ce1182f6c2f6bead3d1737804bf7e112252ae86e0f2e92f9b8249603f43\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://54154e8665b98d65f5dc91b256551852cb47882180b501b260657122d207c0ea\",\"dweb:/ipfs/QmcfemK1A2PXYrWB5SBFGERpMCderbFRb8BtTzQDj1sUBp\"]},\"lib/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x7825565a4bb2a34a1dc96bbfead755785dfb0df8ef81bd934c43023689685645\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f44f4614d31e3d4864c7eb13620555253b84f6a69180f8745b7c6e246a9d125\",\"dweb:/ipfs/QmfNQUcXj3KL8h9u5PqbtEC6yRtwDbKNb48uMPjdwxsKnd\"]},\"lib/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x5c57de03a91cc2ec8939865dbbcb0197bb6c353b711075eefd8e0fca5e102129\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1e994c24fd891ef8a3f5dbf5eba42b34feaf05e0376a29f91322faa18054449c\",\"dweb:/ipfs/QmNdUJGUQxd1dPkMbnA5f5UNqakxRkQE5r7bTZJAuHeapS\"]},\"lib/v3-periphery/contracts/libraries/OracleLibrary.sol\":{\"keccak256\":\"0xe313f89c69c0f1c91f0722868313b4ceb14479b3e7a0abf52a1b9bbd9c18e81b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8ad09b061f3f533c116618c20cf01510108eebebb7ff8847b0f245b8ba368d53\",\"dweb:/ipfs/QmU6vdi5JjJfjK2KqonWvRg9NeuQWarj4B1YFN22Dh9VJM\"]},\"lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"src/collections/CollectionsManager.sol\":{\"keccak256\":\"0x6d136ee04db4f66ab3e7387bc95e418b803db2de2b9703bbf1fba131664abe9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b625170a5e0e5043401e35376d6b74ec5524dff17893f030dce5baa4d080585b\",\"dweb:/ipfs/QmdwAR7pfFjkwkMxVgJ9coAuQVNHLd55uAMsQ46roPJ16x\"]},\"src/collections/CollectionsManagerBase.sol\":{\"keccak256\":\"0x6f48eee8183e7d07e39f06c463d0da0be5383d2c4df0ad9015354ea80868a12c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4627902e85711e9d7970da4e844b6c980e9c57e8a994621634c38dad777b4ee\",\"dweb:/ipfs/QmNa2582FHgAFcm2M2zNdJZxyBiQFHAveGbobY7UqHAd4K\"]},\"src/collections/actions/CollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0xe716bf4597091cfcae5c5039711d331f999f3935510a5de1e61d70dcdb60822a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://903d3fc048e7756023e37a9069af0d732fa6f3670a94e765dff66077028fbe9c\",\"dweb:/ipfs/QmafzQXAnrpHkt4yk7a5V41QaqejEm2MjFVXnSTR4UdzCj\"]},\"src/collections/actions/CollectionsManagerUserActions.sol\":{\"keccak256\":\"0x4d961355fadf16e0d5a2b848ad466bd0039f9c508322bbbe29883346333412b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f8fb10f5247f6feb1dc8e0b0adad1dce345ca2bc709fdf0daeca0149c5e4029\",\"dweb:/ipfs/QmTqCbqE3MqXWG4CeLsbjNMmvjZVAym9SrzSeiDVEQ5vWW\"]},\"src/collections/actions/CollectionsManagerView.sol\":{\"keccak256\":\"0x65b623634495054d58d550d8593f74362c937d4e3f178cdcc2abb49bc4c4ff09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://334c5a9970c22ce7036720000827d374029d065e97031e56c9bf702fae11dbe7\",\"dweb:/ipfs/QmTCXsDc1NoYtdTqaLgV2f5qF46eXdF8KN1fWHqjPFfKde\"]},\"src/collections/interfaces/ICollectionsManager.sol\":{\"keccak256\":\"0xf36eb32c1cf333628338639e1ffb9cad9cf8996a859a352af8cb6b2b781725a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77af02b46b40c96119a68de47edb7fb86bb040bfef2f0cd9d3b430bd10d34ff9\",\"dweb:/ipfs/QmXgH3jDkSK7EGjSQbgYGq1a8ozneEs4gBfvvoQxGVABHZ\"]},\"src/collections/interfaces/ICollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0xf04a0cd0a4b55d018150f2503db4847c60616ee74f87b970ef974079d228c214\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b837a6f5199ed958c07f67a43b2594a1437535bffe18c024b28596c36e4d97\",\"dweb:/ipfs/QmUBjXk8XfiJQV3EHsotzNkQMwcY1SoFAh5HXafXobSeUm\"]},\"src/collections/interfaces/ICollectionsManagerUserActions.sol\":{\"keccak256\":\"0x552b44f8d5735c65ecf42884d51257087bbfcd2c3feccf1f63fa5adc53984ff8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e4ec097f1e67e2c36117eaff4bb5de858a6f08c7dccacf25453df673eccde9\",\"dweb:/ipfs/Qmdmw2dJzKFdBmATxhtCAsLqHN7igEmVQGTBuonRXHm5K9\"]},\"src/collections/interfaces/ICollectionsManagerView.sol\":{\"keccak256\":\"0x3122f5f96caf4125f5841e2c38339ef3589d956c44bdf3028a0f083fc8719dce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6fe2a9b4f75c2a0bab02559c1e298f75154a91706595a3988f72ae893c09d8\",\"dweb:/ipfs/QmaKAc7aR4nvwtbBy5U6kxDF9zHeisEYVfeHxzMcuLy6py\"]},\"src/factory/interfaces/ISizeFactory.sol\":{\"keccak256\":\"0x0c7ee30a3e26cab285f78810a3684c8d91ea4d3c839f023b839144ec69d58780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6f58c02477567655a64a0106153a70fd8e20a42c572554c2d8768ec93ee74a5\",\"dweb:/ipfs/QmUZ9aNgjWMVKBk5B4LRwJmSUWZNpDcBsEw3AhYa1UffUV\"]},\"src/factory/interfaces/ISizeFactoryOffchainGetters.sol\":{\"keccak256\":\"0x01193f70622dd06fa303e488c255bf9b86f4fd2150ded107df75eabb1c200403\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81f74325395f6f3c01d55991aa3e8b2e26c3bd8d80b3e061f3c3d90bea81603d\",\"dweb:/ipfs/QmWKW2CQdeYgK1x5L6i9k43wJVYxu9Qy6QUJD5aFoykQ8p\"]},\"src/factory/interfaces/ISizeFactoryV1_7.sol\":{\"keccak256\":\"0x88d8fee7f821de312741e741fcd2867e55905159002ba4d8ced827778bebde29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42df9dfc39ad1b6812bb10c74d1398d3882e207e9611cb2e857187d7c79e09a\",\"dweb:/ipfs/QmTcbh5pZjV2S6zj5x3nzvRJBBsyy5DuNLRD4Dvg5Ydydq\"]},\"src/factory/interfaces/ISizeFactoryV1_8.sol\":{\"keccak256\":\"0x4bfa5ade9c609d5fa3d3ebe4f01e9b285d7a1ae16e6c7d8a671d23f911b8fbe5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b23af69a7949c34386a4b5268dbe773725f0343665e3422121fe0160566f90b\",\"dweb:/ipfs/QmRovMzxG4jAF13JMqgbrtAuSBZFbdoaNtRmsAEVvcYjBX\"]},\"src/factory/libraries/Authorization.sol\":{\"keccak256\":\"0xf42a6c9392e33ad8d3be9045864c896a1552b4c3e4775198b990ea0b165f8908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02603db5e7c1b4df6b1f474e24fbd3b82e33e46deb84de07d0222bb26d2781af\",\"dweb:/ipfs/QmaDuJawdoxgvVvMerZW8CMQZXKJPXhuH4RASMTfuMJX96\"]},\"src/market/SizeStorage.sol\":{\"keccak256\":\"0x221b1433eadc854eb92d00f8c9c2b2240cf13010e59f11d117adbae0f44b8292\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3de7469241243203c5e033e1585094a18e01cf085a0df55abaa9b07fa3b0ab5\",\"dweb:/ipfs/QmNrzYBgJD87LZJSd4St71nqfQRJBjRKpicx7PYDsdeufa\"]},\"src/market/SizeViewData.sol\":{\"keccak256\":\"0x4fbd20e43987c211e0f8ab6ce467b4d017092a881ad544aa44a5d2f1d555df2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f4ada02248e1224356a5e1b4fce02c60e4f14c414052a09363e9803317eacf\",\"dweb:/ipfs/QmZ69LGdEoZWajqVWiHrDfctYmArkt9ZWMYARwX6htQQ7x\"]},\"src/market/interfaces/IMulticall.sol\":{\"keccak256\":\"0x6e37873de589b4bec14611f36d283ab797d149a2ea61be2d7f3ac32d503dbe41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88a1095d11f66268b50848a9868f28020583e8a4bb0d2885a59624c74e40f989\",\"dweb:/ipfs/QmSDYFNMkdriiJwn1crwmN4GGAsGCAMz89jaw3qAdALF7R\"]},\"src/market/interfaces/ISize.sol\":{\"keccak256\":\"0x40b4880fd0c38a481657cc850edee8c0e76df6b36c86fda08db9704089aaa142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2725d31deb88142806b1932c94a2fe7a29f4342e4d30ce10f789c83706c17912\",\"dweb:/ipfs/QmQfruVNCbhsNZDftExivWc8gGmSGfPNLKjDHrEAWUwe1m\"]},\"src/market/interfaces/ISizeAdmin.sol\":{\"keccak256\":\"0x1f2fda9cf43a960e920186ce0414d596f0c73e20e0ab262a047ffcab5b8a4a9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092faa4adc6268f096580faebcf426c87def65e02525abfecd04aa1acfceaa88\",\"dweb:/ipfs/QmWtjocrjvMRqKH47XiP7GKPRPKPCX3ApnpgpFjt3X9eRf\"]},\"src/market/interfaces/ISizeView.sol\":{\"keccak256\":\"0xb3c51331a555a1525c7d011cc732d6d5658eb77d55d289382b00c125d3ba7617\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b6e78c75a3c09096562538c3000cda5d9d1771799a4eb9c5b4511b6c1ba2a9b\",\"dweb:/ipfs/QmPiFHxx5BCmwyiCKMEgERMLQit7CqoQsCTwMKVBjSdrjZ\"]},\"src/market/interfaces/IWETH.sol\":{\"keccak256\":\"0x4f7e2b2d5033a819263abfafba2aa513dd9a25bb1ce21cfe497daa0ac4a9ec7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e209482985a7a680a0ffc2a6a6e3d0c1fb832db256dc1240c5b054fab19253e\",\"dweb:/ipfs/QmWQC9Qy3Mn9xfvM9xkcru9wcdTgq4jMjiJSbDtSMRfc9t\"]},\"src/market/interfaces/v1.7/ISizeV1_7.sol\":{\"keccak256\":\"0xd884198d67b3d0d77fd5cc30ae96f18f0748b7f540704c130b7b163982d57e83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6948005cacbd6c490a8d158a9d8972b4baf0a05e1715d6c790b6d1f42f0d9b47\",\"dweb:/ipfs/Qmcp2Atca3wK2V1cyMdKLgBQkTPdYjeXqM5zjw3aF3KCdc\"]},\"src/market/interfaces/v1.7/ISizeViewV1_7.sol\":{\"keccak256\":\"0x1ae3e0e566182a39cea1e4a4b2f3ba8e47c9c5dc8aeed24fd5a90d35a5dd317e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c79e7a02e98992bca9e5bc5eb4513100b557f511b1cb0245f7838e12e87efeb\",\"dweb:/ipfs/QmPZDziwpJsReTqbzF7JiWntq4XitinnAJjDd393ePRB6T\"]},\"src/market/interfaces/v1.8/ISizeViewV1_8.sol\":{\"keccak256\":\"0xd44b700b471fcdd6dab74676eca4a3d2ab7435c478cdc83c09ff3426c3eec9b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://440c6ab93d7bf25b47885feb522e0f71963a2bb3247ba820c0f5ce6c3274feb7\",\"dweb:/ipfs/QmV4cAiAb16rMZeKWqtDe69Z9NKWHcuxvGJ6pqxbBa9GUu\"]},\"src/market/libraries/AccountingLibrary.sol\":{\"keccak256\":\"0x7951928ccae855e9fabc380ad88075fee1822e00dadeeb969c5add0e7b1e9a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b895fa756fd379def6e9cb674a9618beeb7e7cc2f9708816cbafe36a56acd769\",\"dweb:/ipfs/QmbAg4HReEqmoJ23JrJpy7Rp2cgZA87VUgMrBFW3yr6Cp8\"]},\"src/market/libraries/Errors.sol\":{\"keccak256\":\"0x7abdde1b276a117d81a1620afa3480be06bf144e072818e693969cf3d2a14baa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0be4d6bed4cb5478cf73bda6c1fddc9ab6b77f3c34835deb3f1bdcefc3a882\",\"dweb:/ipfs/QmX7gNjXw5ZXCWkTPkHnqfA8XPa4m1mrQvJcsRumKtkbvx\"]},\"src/market/libraries/Events.sol\":{\"keccak256\":\"0x85079adf3af32759510c2dbd82ab3f5153ea2ee4b7f2d35c9162659308f3db6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://296805f12ae70a15193390ffa8efbc611460227a995a9e1d46e0b3d4228b3f0a\",\"dweb:/ipfs/QmeGzcqCvi7hfk6Bxv7vVZvvfLFCzSup93MwrpRWQZB82K\"]},\"src/market/libraries/LoanLibrary.sol\":{\"keccak256\":\"0x40dcae0ebbfff42282a5ceb00b5698c882242e028740099bc5828a08fa7e77e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efb877878b973bb6e8913cc3c4f4948ca7a43d0036dc243862cc8de7a3e92384\",\"dweb:/ipfs/QmYt8p1H7gAyTExvnKV1Anhfnjk5o774yi4ibHGUxByExv\"]},\"src/market/libraries/Math.sol\":{\"keccak256\":\"0xa270b1631b8b469d0e4bfddfaa0bf87ee285fa7532e1ed31f28674356fce0e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f0d027e9af0e81111d0b573c836502f94f5f0e5a3b5c0fc8ff025060e78bb53\",\"dweb:/ipfs/QmbS7Wnub3nmeo7yfeQht68MzWwMrQ3Ef7bUtiNtDMtXDx\"]},\"src/market/libraries/OfferLibrary.sol\":{\"keccak256\":\"0x542c3ba9d51c00f0d02c7db31b27eedc6d5cb7d723b63f5fcf4ee360e0c43098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d498bf3e0e807c69c06f51509a506078dbd9d407ba36966f6979d1bb494d6ea4\",\"dweb:/ipfs/QmPH4Hz8SgTErj42X3xGHxid6BQiYudwbgEE6ZJ88kNTbv\"]},\"src/market/libraries/RiskLibrary.sol\":{\"keccak256\":\"0xc639312f28fb460000aff9c0869ffb2c3bdaab5e6d5aff6895df6bc2d3461b7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4eb18a5f3fc5ecacc2a166e0f5c456246bcff32284d29fa14d819f7616c7718d\",\"dweb:/ipfs/QmR9aSvd6G1qmqTKvT21fHk8EVeKGjKysn34qpCFTXhKXz\"]},\"src/market/libraries/YieldCurveLibrary.sol\":{\"keccak256\":\"0x8d4b1f45d67387169c3b38cc034305eba91ad306dac7021d4658e3b8bbc9a135\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438376203571e01cbb26ea58c192d3036a1e623c0c5897c52aeafaa90e281cd3\",\"dweb:/ipfs/QmcRNJKsudM9bZvCPCSEQWxPHvVEfQD1u2MPf8S33fh3o3\"]},\"src/market/libraries/actions/BuyCreditLimit.sol\":{\"keccak256\":\"0xccb77182ce62b7ea147ee65ad7e32076f9e565a2605c18842087103e471f79f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://571a3265ef2664d9fea268e229af1bc0e430f458efe6898a03532de799d959ef\",\"dweb:/ipfs/QmSA1hphKNeRdqKtKpbfM3yof9TTd13r9X5ei7jNiuhcwQ\"]},\"src/market/libraries/actions/BuyCreditMarket.sol\":{\"keccak256\":\"0x8bc8b7c8c274648d666d0e83e3605f1cbc02b63f283fb72485e32cb2c9fdb1d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dfd2009d13f1cd03d1eff41195c66617b51390d65d7c805c0bd3ef288b9a5925\",\"dweb:/ipfs/QmczwzFqX7vugWArcsLvjzGzCkBsRyyrv5s8nUkq2iAnHx\"]},\"src/market/libraries/actions/Claim.sol\":{\"keccak256\":\"0x0145b5a2bef3cb5b6348c0826a020eaaf8db1880bb7aa2804bf03cc16eaf2adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de61cb5c77a1be1cc00990f8b21e1ad41005c811309244acb314d3e3f2324427\",\"dweb:/ipfs/QmVJJ8RgFXtNg3KLcevf99ZyhXQQtAH32i7MZXM1VLrbyd\"]},\"src/market/libraries/actions/Compensate.sol\":{\"keccak256\":\"0x5fa7ce8b74eeea09d12b78e3b31dbc7b37fca58b235299ad5d9f8e99ea400719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fbeff16ba76d1e3735f4d067ba16da7b0f35176ff9ea501a99f94063936bc5d\",\"dweb:/ipfs/QmYyogfmQmrpEksBc9uSjVQvYAWdaq31pJ3j6aAnc8D1rA\"]},\"src/market/libraries/actions/CopyLimitOrders.sol\":{\"keccak256\":\"0x0a05feb3e672625f69bfddee0a52201018e3b6d2eaa11a6b15fde1841ef99fef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://747191eaf25efda3490ae6619b0f2b252231b8750b83ae6c078ef9bf8125942b\",\"dweb:/ipfs/QmUiLrSfYdHUqDKAm6Ted47aQvV3ysHETarRbitvdGWbVg\"]},\"src/market/libraries/actions/Deposit.sol\":{\"keccak256\":\"0x75e2039804c341b06705e712a8403350bf3860207178872eba02b12acc1a55e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76f871e1a3b6e9accffffac39be2a51d90cb16028511f0f54597bdb8e8c2c6fe\",\"dweb:/ipfs/QmNzQiqWUiVnqpL9EhyG9tbF36nksZJ3YeT3hNioQLCpwG\"]},\"src/market/libraries/actions/Initialize.sol\":{\"keccak256\":\"0xbad2d5f92aaeee28a87c1feda397f787cf1a2f8432bf05371f79b2309e9858f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c6959ee090add484fe99aa21bb8e879c36a97a1d00b4d49dfade775c4813a63\",\"dweb:/ipfs/QmZycV28jdCXWHy7QV7uqtqxaiReZaTYtvvgECuHb3gwJQ\"]},\"src/market/libraries/actions/Liquidate.sol\":{\"keccak256\":\"0x20e7ccfb443548a7325a592034bcfb6f474c313f9cf0453fafc45777a280d85f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec7a9075a20c68b7ca70c6b283692724d2e42faf0596187bd1075d8d7b6c03b1\",\"dweb:/ipfs/QmbHMZ2EmbhY4w51vWUkuEvr2r8XEkJkYvM56Tk5h1yr9G\"]},\"src/market/libraries/actions/LiquidateWithReplacement.sol\":{\"keccak256\":\"0x7bb6ac2228d387c7a8e3f38299b847a3123f26bcb6294b22ee11970b9a042cbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34cfbe1582855e30a25cf3b4326d9a752e1901b50776779ca92d094e9509dea3\",\"dweb:/ipfs/QmNZiMDEjt41JYUsrkyNDfKGqSMxbFMAaf2dbznqaEfvVT\"]},\"src/market/libraries/actions/PartialRepay.sol\":{\"keccak256\":\"0xcca168dab87cf6c5a383340443041194ea3ca272aa48cdbe7ffcb263be767900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd4a81eeab2fbb3ac34e21fdfe3acf4cbae5802984ddd0eabcc4b5dcf5b80315\",\"dweb:/ipfs/QmVZ9wKB1vjGghXfCE3AFNGTiGLekqbLEELSdJ26eeXy3F\"]},\"src/market/libraries/actions/Repay.sol\":{\"keccak256\":\"0x8ce3d2f0cf14efb0489f509f244c05d8045ea5eecffceb2d932321d4f62a5474\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://773030fd26b7cd147d3c1c745a858e541dee98331c362de19e7c7f021be7c44e\",\"dweb:/ipfs/QmZ8Du3qDSdpM64JCD6PqfqQ4DtpcfaVX6ujiCEJhgUhX5\"]},\"src/market/libraries/actions/SelfLiquidate.sol\":{\"keccak256\":\"0x2d71cff942efc93fb7aa3a0a636e44562e0fa44ba4d503f323c6d08e7fdd8af3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdc43c74a42cffbf3844939df1d21a2b392ad3596ece8f1e9a6ebe08c2ec64be\",\"dweb:/ipfs/QmRUScCkvE4EADEUEvdwrsnzfLsq7xjFt1xsSZ4PZfs6J7\"]},\"src/market/libraries/actions/SellCreditLimit.sol\":{\"keccak256\":\"0xe8fe9ab69faccffa8539167973d13c5afe04ca8358316a092540171d084654b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c626cb1ad9347b0eabd162f590c61175cdc687958bc6684843201713c5efa89\",\"dweb:/ipfs/QmNqZc3Zh2Nvj6exvG89XShBY4WtBJSh6iKWr7gZB8sQ3k\"]},\"src/market/libraries/actions/SellCreditMarket.sol\":{\"keccak256\":\"0xf4bd799bb7cf51c565d530ff42cebf0a3b1d2b01a783f484c3ffda112eca962d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7d0d213d6c00b09f7508887541968939a960a86160f6812143bff9c07ecf86\",\"dweb:/ipfs/QmRafSq5sVAsmpttMGWM1FJJz9Gg1bTrVthP6k2Jppe9gr\"]},\"src/market/libraries/actions/SetUserConfiguration.sol\":{\"keccak256\":\"0xfc4ebcf3b25f112bf4f268167289f65904d45484a35930c5a665a6a405b10f07\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c65465dd5d1fbeb0c5ce1b48cce941b2c92dcf32d1f1d3e543513ec858bd9df\",\"dweb:/ipfs/QmQNQSUFHYNgvemQNT5HtcLR2ybe4uHLT8o3rDVXHfFbwt\"]},\"src/market/libraries/actions/UpdateConfig.sol\":{\"keccak256\":\"0x040b1b2b4dfb446b50bce809c070a3b977e7c614f2bfdf632b10f9c89ec8d80e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://067a98624ca328a30debcd8d09adb675ad3ebeafe0829269ca5f42574babcca3\",\"dweb:/ipfs/QmU3K7oJnmknBtCyVNR6d2fLsUFCPvozr1DvY9W42cw1Eu\"]},\"src/market/libraries/actions/Withdraw.sol\":{\"keccak256\":\"0x7a742d3bababff2547f5e71d52feb7a6d93549beb896981a8e220952c02f52df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53abc4a277560dd0688de69f0dc8aa6531ad4ec7c808d4592e656b214fd71f21\",\"dweb:/ipfs/QmT61oye8uwqzSwnqK74PFkJu2kV63wHpJKSocH8yur3eR\"]},\"src/market/token/NonTransferrableRebasingTokenVault.sol\":{\"keccak256\":\"0x408c52f8e5ef7e79e1afcda1a42004a163e8856156ae859388c8b841349b9a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dae3ad0b3f501a9788657b9a961a7ad8440c5cc78f62f581a6949a21166b5481\",\"dweb:/ipfs/QmNurenVtRDWbmNHtb1QDzVNbB6sBZcN8LGcn2ayaCFBig\"]},\"src/market/token/NonTransferrableToken.sol\":{\"keccak256\":\"0xf82118604ddbcd5d9ff708d739396e993d9621cff7b07f22a519141ca39a9e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f371fb37a2ac76630302b1284d62e8657f038b504ce9884723574c2a3de32ec\",\"dweb:/ipfs/QmRsjmBirftC8Jih4jBG2BoJmpe4RRAAsEwsmtLjWicTVf\"]},\"src/market/token/adapters/IAdapter.sol\":{\"keccak256\":\"0xb953b0e5e09d775cf4b6ef970131883c052510a156d0b6a7f6550aa7a3344d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62272b20b8f5d9fe2d7a55e5774835cede834df2d4ee8b3456d35e54547f0fb8\",\"dweb:/ipfs/Qmcf9RPBiArogFRFqZjt7jvtBQCuRGDPyQMakVDGPSDHF9\"]},\"src/oracle/IPriceFeed.sol\":{\"keccak256\":\"0x7ec983afe56cc8eee5d4b3573a51665ad0cfc8835f8fb8fd864b2a5a119f9a90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fc706986c7c132d4b0b95ec2f7b3aa49def6511ebe84643ee1359b2318da48\",\"dweb:/ipfs/QmQCwub8SCenVvQnVtL24Eny3jNZrugoxKsu86da55nBKJ\"]},\"src/oracle/adapters/ChainlinkPriceFeed.sol\":{\"keccak256\":\"0x71a4ccb7d9469f4d7a914a81c754b1278152a387f8154e0f9793e0e3d010a599\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d953653f6481b344d0d00a677a8301f3006a50c3b90744c39cd3eda6f508818b\",\"dweb:/ipfs/QmYR1RvdMboMpH9ykJN5WwuC3AabSvPS2JA4t4afxa7gyh\"]},\"src/oracle/adapters/ChainlinkSequencerUptimeFeed.sol\":{\"keccak256\":\"0x3d200d7fcc7c457a201f2bb32a0b68ea13b2b697cb300bbd587828bff5ffe8b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d72923e346e73eb0d42d055437dc6df059c3a8f27b08ff5aacd7cf7fdf90eec5\",\"dweb:/ipfs/QmPYENtSCwseMxYtQeKAkVe8DuCJYzRGpFRxDgw85xf2g8\"]},\"src/oracle/adapters/UniswapV3PriceFeed.sol\":{\"keccak256\":\"0x84027f9673163df8f7dcbd7c828cf5bada6a9c7de1986d3821ec75004a11f639\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0caf13ef11f4ad681f395ee48145d72fcd3a1eae5b439efb132be9cccd8f1243\",\"dweb:/ipfs/QmdrnR1auzKaQhZ7AqWRKHnajw1Y6oLmdNFYJzKLzb5E72\"]},\"src/oracle/v1.5.1/PriceFeed.sol\":{\"keccak256\":\"0x36473f98f23968eaab386e44c1404652c7ef88c09db9772ab3195d8305829762\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5db471c144f3a43e9e07391890e7b29e39b64ae3fb0e73b66dd313801b03542a\",\"dweb:/ipfs/Qmf5GMB6SdKNCUPCbV4nYmxUjg6z3iKiweYU2ajY9BrGbC\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC721EnumerableForbiddenBatchMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"ERC721OutOfBoundsIndex\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"INVALID_MARKET\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"InvalidCollectionId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"name\":\"InvalidCollectionMarketRateProvider\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"InvalidTenor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"MarketNotInCollection\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"OnlySizeFactory\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"PAUSED_MARKET\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"MarketAddedToCollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"MarketRemovedFromCollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"name\":\"RateProviderAddedToMarket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"name\":\"RateProviderRemovedFromMarket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"indexed\":false,\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"indexed\":false,\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"}],\"name\":\"SetUserCollectionCopyLimitOrderConfigs\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"SubscribedToCollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"UnsubscribedFromCollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize[]\",\"name\":\"markets\",\"type\":\"address[]\"}],\"name\":\"addMarketsToCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"rateProviders\",\"type\":\"address[]\"}],\"name\":\"addRateProvidersToCollectionMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"collectionContainsMarket\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createCollection\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getBorrowOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"getCollectionMarketRateProviders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isLoanOffer\",\"type\":\"bool\"}],\"name\":\"getLimitOrderAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getLoanOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getSubscribedCollections\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISizeFactory\",\"name\":\"_sizeFactory\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"isBorrowAPRLowerThanLoanOfferAPRs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"name\":\"isCopyingCollectionMarketRateProvider\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanAPR\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"isLoanAPRGreaterThanBorrowOfferAPRs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"isSubscribedToCollection\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"}],\"name\":\"isValidCollectionId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize[]\",\"name\":\"markets\",\"type\":\"address[]\"}],\"name\":\"removeMarketsFromCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"rateProviders\",\"type\":\"address[]\"}],\"name\":\"removeRateProvidersFromCollectionMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"}],\"name\":\"setUserCollectionCopyLimitOrderConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"name\":\"subscribeUserToCollections\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"name\":\"unsubscribeUserFromCollections\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Size (https://size.credit/)\",\"custom:security-contact\":\"security@size.credit\",\"errors\":{\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC721EnumerableForbiddenBatchMint()\":[{\"details\":\"Batch mint is not allowed.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721OutOfBoundsIndex(address,uint256)\":[{\"details\":\"An `owner`'s token query was out of bounds for `index`. NOTE: The owner being `address(0)` indicates a global out of bounds index.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"addMarketsToCollection(uint256,address[])\":{\"details\":\"By default, the collection market configs are set to \\\"full\\\", ie, the rate providers limit orders are fully copied without alterations\",\"params\":{\"collectionId\":\"The collection ID\",\"markets\":\"The markets to add\"}},\"addRateProvidersToCollectionMarket(uint256,address,address[])\":{\"params\":{\"collectionId\":\"The collection ID\",\"market\":\"The market to add the rate providers to\",\"rateProviders\":\"The rate providers to add\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"collectionContainsMarket(uint256,address)\":{\"details\":\"Should not revert\",\"params\":{\"collectionId\":\"The collection ID to check\",\"market\":\"The market to check\"},\"returns\":{\"_0\":\"True if the collection contains the market, false otherwise\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createCollection()\":{\"details\":\"Mints a ERC721EnumerableUpgradeable NFT collection to the curator. Can be used to transfer ownership of the collection to another curator.\",\"returns\":{\"collectionId\":\"The collection ID\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getBorrowOfferAPR(address,uint256,address,address,uint256)\":{\"details\":\"If collectionId is RESERVED_ID, selects the user-defined yield curve\",\"params\":{\"collectionId\":\"The collection ID to get the borrow offer APR for\",\"market\":\"The market to get the borrow offer APR for\",\"rateProvider\":\"The rate provider to get the borrow offer APR for\",\"tenor\":\"The tenor to get the borrow offer APR for\",\"user\":\"The user to get the borrow offer APR for\"},\"returns\":{\"apr\":\"The borrow offer APR\"}},\"getCollectionMarketRateProviders(uint256,address)\":{\"params\":{\"collectionId\":\"The collection ID to get the rate providers for\",\"market\":\"The market to get the rate providers for\"},\"returns\":{\"_0\":\"The rate providers for the collection market\"}},\"getLoanOfferAPR(address,uint256,address,address,uint256)\":{\"details\":\"If collectionId is RESERVED_ID, selects the user-defined yield curve\",\"params\":{\"collectionId\":\"The collection ID to get the loan offer APR for\",\"market\":\"The market to get the loan offer APR for\",\"rateProvider\":\"The rate provider to get the loan offer APR for\",\"tenor\":\"The tenor to get the loan offer APR for\",\"user\":\"The user to get the loan offer APR for\"},\"returns\":{\"apr\":\"The loan offer APR\"}},\"getSubscribedCollections(address)\":{\"details\":\"Should not revert\",\"params\":{\"user\":\"The user to get the subscribed collections for\"},\"returns\":{\"collectionIds\":\"The subscribed collections for the user\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)\":{\"details\":\"Perform this check in O(C * R + 1), where C is the number of subscribed collections, R is the number of rate providers, and 1 is for the user-defined APR check Users should be aware that subscribing to too many collections / rate providers may result in market order reverts due to gas limits\",\"params\":{\"borrowAPR\":\"The borrow APR\",\"market\":\"The market\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"isLower True if the borrow APR is lower than the loan offer APRs, false otherwise\"}},\"isCopyingCollectionMarketRateProvider(address,uint256,address,address)\":{\"details\":\"Should not revert\",\"params\":{\"collectionId\":\"The collection ID to check\",\"market\":\"The market to check\",\"rateProvider\":\"The rate provider to check\",\"user\":\"The user to check\"},\"returns\":{\"_0\":\"True if the user is copying the collection market rate provider, false otherwise\"}},\"isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)\":{\"details\":\"Perform this check in O(C * R + 1), where C is the number of subscribed collections, R is the number of rate providers, and 1 is for the user-defined APR check Users should be aware that subscribing to too many collections / rate providers may result in market order reverts due to gas limits\",\"params\":{\"loanAPR\":\"The loan APR\",\"market\":\"The market\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"isGreater True if the loan APR is greater than the borrow offer APRs, false otherwise\"}},\"isSubscribedToCollection(address,uint256)\":{\"details\":\"Should not revert\",\"params\":{\"collectionId\":\"The collection ID to check\",\"user\":\"The user to check\"},\"returns\":{\"_0\":\"True if the user is subscribed to the collection, false otherwise\"}},\"isValidCollectionId(uint256)\":{\"details\":\"Should not revert\",\"params\":{\"collectionId\":\"The collection ID to check\"},\"returns\":{\"_0\":\"True if the collection ID is valid, false otherwise\"}},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"removeMarketsFromCollection(uint256,address[])\":{\"params\":{\"collectionId\":\"The collection ID\",\"markets\":\"The markets to remove\"}},\"removeRateProvidersFromCollectionMarket(uint256,address,address[])\":{\"params\":{\"collectionId\":\"The collection ID\",\"market\":\"The market to remove the rate providers from\",\"rateProviders\":\"The rate providers to remove\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setUserCollectionCopyLimitOrderConfigs(address,uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))\":{\"details\":\"Only callable by the SizeFactoryAdded in v1.8.1\",\"params\":{\"collectionId\":\"The collection ID to set the copy limit order configs for\",\"copyBorrowOfferConfig\":\"The copy limit order config for the borrow offer\",\"copyLoanOfferConfig\":\"The copy limit order config for the loan offer\",\"user\":\"The user to set the copy limit order configs for\"}},\"subscribeUserToCollections(address,uint256[])\":{\"details\":\"Only callable by the SizeFactory\",\"params\":{\"collectionIds\":\"The collection IDs to subscribe the user to\",\"user\":\"The user to subscribe\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"unsubscribeUserFromCollections(address,uint256[])\":{\"details\":\"Only callable by the SizeFactory\",\"params\":{\"collectionIds\":\"The collection IDs to unsubscribe the user from\",\"user\":\"The user to unsubscribe\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"CollectionsManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addMarketsToCollection(uint256,address[])\":{\"notice\":\"Adds markets to a collection\"},\"addRateProvidersToCollectionMarket(uint256,address,address[])\":{\"notice\":\"Adds rate providers to a collection market\"},\"collectionContainsMarket(uint256,address)\":{\"notice\":\"Check if a collection contains a market\"},\"createCollection()\":{\"notice\":\"Creates a new collection\"},\"getBorrowOfferAPR(address,uint256,address,address,uint256)\":{\"notice\":\"Get the borrow offer APR for a user, collection, market, rate provider and tenor\"},\"getCollectionMarketRateProviders(uint256,address)\":{\"notice\":\"Get the rate providers for a collection market\"},\"getLoanOfferAPR(address,uint256,address,address,uint256)\":{\"notice\":\"Get the loan offer APR for a user, collection, market, rate provider and tenor\"},\"getSubscribedCollections(address)\":{\"notice\":\"Get the subscribed collections for a user\"},\"isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)\":{\"notice\":\"Check if the borrow APR is lower than the loan offer APRs\"},\"isCopyingCollectionMarketRateProvider(address,uint256,address,address)\":{\"notice\":\"Check if a user is copying a collection market rate provider\"},\"isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)\":{\"notice\":\"Check if the loan APR is greater than the borrow offer APRs\"},\"isSubscribedToCollection(address,uint256)\":{\"notice\":\"Check if a user is subscribed to a collection\"},\"isValidCollectionId(uint256)\":{\"notice\":\"Check if a collection ID is valid\"},\"removeMarketsFromCollection(uint256,address[])\":{\"notice\":\"Removes markets from a collection\"},\"removeRateProvidersFromCollectionMarket(uint256,address,address[])\":{\"notice\":\"Removes rate providers from a collection market\"},\"setUserCollectionCopyLimitOrderConfigs(address,uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))\":{\"notice\":\"Set the copy limit order configs for a user and collection\"},\"subscribeUserToCollections(address,uint256[])\":{\"notice\":\"Subscribe a user to collections\"},\"unsubscribeUserFromCollections(address,uint256[])\":{\"notice\":\"Unsubscribe a user from collections\"}},\"notice\":\"See the documentation in {ICollectionsManager}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/collections/CollectionsManager.sol\":\"CollectionsManager\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@solmate/=lib/solmate/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":halmos-helpers-lib/=lib/halmos-helpers-lib/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/auth/=lib/solmate/src/auth/\",\":solmate/mixins/=lib/solmate/src/tokens/\",\":solmate/tokens/=lib/solmate/src/tokens/\",\":solmate/utils/=lib/solmate/src/utils/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20.sol\":{\"keccak256\":\"0xf57d62241e553696a1324d225663ba2e1a51db0a51ca236d0c1b009d89b6284c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d327db93b636790909aa137124f30a856ac1631cb79c476aa188f9627fda8d03\",\"dweb:/ipfs/QmaxpmEoBFioeNYmpxJemyZ7aYF2nX1NKW1XDqREm7i6es\"]},\"lib/aave-v3-core/contracts/interfaces/IAToken.sol\":{\"keccak256\":\"0x4ec2e3180174f248c9308e03fa837d44ca91ca6c1ad67c9951a2951d46948417\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://764b8e56a62c7277efdd6dc29e1ce3f88cb997613a3142a79effa5b3d908a3fa\",\"dweb:/ipfs/QmWAF7rDjyVqkwDR6RGRwYvB3V2fe3T7G1ZSC9UuHjAAZf\"]},\"lib/aave-v3-core/contracts/interfaces/IAaveIncentivesController.sol\":{\"keccak256\":\"0x906b896fdcb878d1472f740a70680f26e9a601dc28701113ab1f89cd9edce0bd\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b17473265a3ec2ec73dac797e0e60c147590f4e5cc7016f8eb61efbe072c49e0\",\"dweb:/ipfs/QmchQGeuyUw3VW4Kgwfg5Ys9ky1F7Q6QCcKbywbRaEUPt7\"]},\"lib/aave-v3-core/contracts/interfaces/IInitializableAToken.sol\":{\"keccak256\":\"0xb7c0da4c50ab10ce00e2325e649297923497738350092f64ef4b259307039dee\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://67af6435a258e6d08151b0c37884475e040c2939c76cfb0ba7afd6264c45be87\",\"dweb:/ipfs/Qmf5wup15foyfWrGvhiZDyasJn9XZFn4Vs14Dui9smeLa3\"]},\"lib/aave-v3-core/contracts/interfaces/IPool.sol\":{\"keccak256\":\"0xbfd2077251c8dc766a56d45f4b03eb07f3441323e79c0f794efea3657a99747f\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c6ff6221de0ea877932c73c0b99d3e4535f293053ae44f9f9d6b9d265e9af2f6\",\"dweb:/ipfs/QmSTaEKrhz1xNVnx4oBzWw8DenYPShVzJoP1A9GTEWkAzX\"]},\"lib/aave-v3-core/contracts/interfaces/IPoolAddressesProvider.sol\":{\"keccak256\":\"0x33d4308d9407b4ee2297fc4ba5acce1a96a6c658189e2778a4f6b90e032fb3b5\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://978336a2a40229ccc7749344be890862ea12e17e9fffe5bb977ba3841de07b5a\",\"dweb:/ipfs/QmScNrQfDSPg1afJmkCty6fZkETUrWTmEXWeTmHoe7mSqa\"]},\"lib/aave-v3-core/contracts/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0x72b3ea433cd3386f369f1643a154bf233ec60c02acd02c32088a97556207d2e4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a5907c61cf65126001feebd94c7a869eff95045106d97e21bf7f0d3de22caf9d\",\"dweb:/ipfs/QmPARkA7YpsBtd1F3JgszZREJk6TAkqRLBkjWZUadCu3sM\"]},\"lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol\":{\"keccak256\":\"0x618fe1876e322a10269e4a96e61e516bbbec883cb79e20b508f8010027178f07\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d2814d57ad47ba13959bf9a108c25374828a370f8d64b5adb7564876927a3a06\",\"dweb:/ipfs/Qmf9xfz7svNZAzgUHUTAj6gVC7SHiT7S4obfo1Sg1Fwzbx\"]},\"lib/aave-v3-core/contracts/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x771cb99fd8519c974f7e12130387c4d9a997a6e8d0ac10e4303b842fe53efa88\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f41689d1d58bc13678c749bae8830f5a8b19b89cd135e962bf07d483350f828\",\"dweb:/ipfs/QmQSNGDxjYGqT1GU2CZzsWUTNcAtcfkg1jDGTH516nCAfN\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x0d4d7d19a052a2ef9d17b28450133631188b895e1755747fa8ad0280aadfb534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838551e10cc07e570b70aee1078e490658d3a0ab8f4adfd4f3f2a565200753da\",\"dweb:/ipfs/QmceT7R3Pqzywyxr3MSEA7VXU4axZAPS6BLy92iV97rGdG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0x374714bef85e753a13fdf792ca567ef734351029265f2cce8db533d7a942c740\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6024252b335cecf3bcf3502cfb883ffc7f8e72926734f848b0684eccaeac8027\",\"dweb:/ipfs/QmevY4P9E3eEDZ7msGJ5aFmbPGLWZr976g3EUwWeUs1JGV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0xe5775eb1fb17165cd191e8f8b2232dbea8765e7e610eaa3d6e52feead793ec5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://352614aea75c3d913cbcabb528be3d6c3335c3c77da41d59486a3193069dd095\",\"dweb:/ipfs/QmR3Nabxfme6tHrAMJCyK4MWZtpund2c4R7aFKmea3sGZM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x00c23b80f74717a6765b606001c5c633116020d488ee8f53600685b8200e4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73d0bd5ff47377a97d52149a805d82112f88c9f4ae853ef246a536bd31ce1da\",\"dweb:/ipfs/QmagG3Yup65JQPSMZScubYTCeyuUyvKLxBM3X1er6xWWxf\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7b6690c21e94a45b825631a12581b40a753ea827de5ac9127a6b5833411317f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00045f2c18d7866618c65819fe180a9a9dab25c1974fab35069bdac9cf624b6b\",\"dweb:/ipfs/QmYk62QRqGHJ3rjqfEtbfEGFHWsenv5tNMbeMfq5HkTP44\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5d0c69ef32eae686acc22acfb1a54df9c91356e69adec593aa69eba83ae8f6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7a9fca2cb3d802c4f8a2d0fda84ccc7f880264885801c7df08373501dd22282\",\"dweb:/ipfs/QmdtM2Loz9NzNTuQ3RXNQCPBjoPUJw35Ukpt1MSM9XH3cD\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xecd5f3c702f549fb88555e44e5f2415a4dfd6db09081aec7e98c26b6a3739c06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed40e907a6d80458a0556a609d0d3991d718c20f9f1f21475e5ec739af523231\",\"dweb:/ipfs/QmejkwADsZRxkusNU94sswMJfpLrbq8RkJTbNccUEQpc7Y\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0x4e64844c56061cd90e0a80de73534a9166704c43eed579eb83f90bc2780ce968\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cba4fab5cebdddf644b901994a7f0f52b98885d4c56012f4dc51d52c2bf9de0e\",\"dweb:/ipfs/QmVyyrRmqXrAiapewWunRVgiPVFJHpH2hKiE1py1svMSNV\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol\":{\"keccak256\":\"0xf80abf13fb1fafc127ba4e792f240dd8ea7c8c893978cdfd8439c27fae9a037b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b04fc72a656bbf3631e9c2e67b9870a2d9d235185e833fe050e9606e6816a9aa\",\"dweb:/ipfs/QmUcz4bkEkJ9pwzFu1C3n97hBQ3st9U6qTAqCdyFwddKco\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x44fa2ce1182f6c2f6bead3d1737804bf7e112252ae86e0f2e92f9b8249603f43\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://54154e8665b98d65f5dc91b256551852cb47882180b501b260657122d207c0ea\",\"dweb:/ipfs/QmcfemK1A2PXYrWB5SBFGERpMCderbFRb8BtTzQDj1sUBp\"]},\"lib/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x7825565a4bb2a34a1dc96bbfead755785dfb0df8ef81bd934c43023689685645\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f44f4614d31e3d4864c7eb13620555253b84f6a69180f8745b7c6e246a9d125\",\"dweb:/ipfs/QmfNQUcXj3KL8h9u5PqbtEC6yRtwDbKNb48uMPjdwxsKnd\"]},\"lib/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x5c57de03a91cc2ec8939865dbbcb0197bb6c353b711075eefd8e0fca5e102129\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1e994c24fd891ef8a3f5dbf5eba42b34feaf05e0376a29f91322faa18054449c\",\"dweb:/ipfs/QmNdUJGUQxd1dPkMbnA5f5UNqakxRkQE5r7bTZJAuHeapS\"]},\"lib/v3-periphery/contracts/libraries/OracleLibrary.sol\":{\"keccak256\":\"0xe313f89c69c0f1c91f0722868313b4ceb14479b3e7a0abf52a1b9bbd9c18e81b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8ad09b061f3f533c116618c20cf01510108eebebb7ff8847b0f245b8ba368d53\",\"dweb:/ipfs/QmU6vdi5JjJfjK2KqonWvRg9NeuQWarj4B1YFN22Dh9VJM\"]},\"lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"src/collections/CollectionsManager.sol\":{\"keccak256\":\"0x6d136ee04db4f66ab3e7387bc95e418b803db2de2b9703bbf1fba131664abe9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b625170a5e0e5043401e35376d6b74ec5524dff17893f030dce5baa4d080585b\",\"dweb:/ipfs/QmdwAR7pfFjkwkMxVgJ9coAuQVNHLd55uAMsQ46roPJ16x\"]},\"src/collections/CollectionsManagerBase.sol\":{\"keccak256\":\"0xadd6127e50b9752bfcc5c5bd2a278f1d2d995f41f246690a174f87df36ac007b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f91184624c0119407f4908e327af6f6274a87dc8cccd34e7c8fb0ec59a8884\",\"dweb:/ipfs/QmTBNqr6mUUNbVc1kGurGCWMD8vZaeTTwJDoPSsGZt9LUG\"]},\"src/collections/actions/CollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0xf810cfde07165257f1939da7fbe845aaf9442d8a2c131a362a8945e3e764ab8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed9343183b5415f4881d01d20617cd0fd2c5030e78df4840be5f6e1530048635\",\"dweb:/ipfs/QmQF1TJrS9whZNAMnXq9vDL5TKBGGpLid4APq9uZwXsX6D\"]},\"src/collections/actions/CollectionsManagerUserActions.sol\":{\"keccak256\":\"0x21da34e960a401df867f5977ee5072014d9ce1c8ccf8db362b370c0516c44450\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5723cf6ce4b59694e3777df195a6707e7f563954aa2d2d26ac0d0fb0e0e6ec58\",\"dweb:/ipfs/QmSvhaf5ZT5tYzszaQTy2DTr4GJBRbduRo2kcst3pr6cqB\"]},\"src/collections/actions/CollectionsManagerView.sol\":{\"keccak256\":\"0x3bbe4d2f0051b3dc5e70f3284e6265a1334bba30081ff1d3469b80d400b0d853\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42a3ea79ae5741a42e60de436cfc36f94306c52dedc3d7574942a51513acb3c0\",\"dweb:/ipfs/QmSn48PLxYqAKkgVtYsoerLfFkZqyGusaE1qhAt34bFc1g\"]},\"src/collections/interfaces/ICollectionsManager.sol\":{\"keccak256\":\"0xf36eb32c1cf333628338639e1ffb9cad9cf8996a859a352af8cb6b2b781725a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77af02b46b40c96119a68de47edb7fb86bb040bfef2f0cd9d3b430bd10d34ff9\",\"dweb:/ipfs/QmXgH3jDkSK7EGjSQbgYGq1a8ozneEs4gBfvvoQxGVABHZ\"]},\"src/collections/interfaces/ICollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0x7420c54515b8bd3ae387671d7ebc03cee304bffb68bea11388e6f993654c72be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5228ec9921301a2da45018f00a7dde6a152549cb1f08941e6612f444448baa84\",\"dweb:/ipfs/QmZpmzHiaW5X9TQ9Q7myAzBxpffBKh8Ty58Epj5s82AuMX\"]},\"src/collections/interfaces/ICollectionsManagerUserActions.sol\":{\"keccak256\":\"0x5eeaffedce45f266039fa0c14e150fa9b65cae668073872d362092b70a4bba36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ce96526ff03f209bdc824dc23a87c9270cd4a258c6e809397c21899301a575a\",\"dweb:/ipfs/QmNRFmXMGH3YWLXkqPFeSz9bgKrHBFKvH7yNJYKBS6bW2k\"]},\"src/collections/interfaces/ICollectionsManagerView.sol\":{\"keccak256\":\"0x3802e370d2ba7707f50aae8d85f8d5a5bb3496dc0379b3db3294facd0d75c0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://197a2965fef0b04dc2bc06783ff765af3c585678b348c1e4882e34b0a953d94e\",\"dweb:/ipfs/QmTGmm9i3JbNdGXGspv1pnKLCh9VoPyDM28Fx9XfYJoHrn\"]},\"src/factory/interfaces/ISizeFactory.sol\":{\"keccak256\":\"0x0c7ee30a3e26cab285f78810a3684c8d91ea4d3c839f023b839144ec69d58780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6f58c02477567655a64a0106153a70fd8e20a42c572554c2d8768ec93ee74a5\",\"dweb:/ipfs/QmUZ9aNgjWMVKBk5B4LRwJmSUWZNpDcBsEw3AhYa1UffUV\"]},\"src/factory/interfaces/ISizeFactoryOffchainGetters.sol\":{\"keccak256\":\"0x01193f70622dd06fa303e488c255bf9b86f4fd2150ded107df75eabb1c200403\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81f74325395f6f3c01d55991aa3e8b2e26c3bd8d80b3e061f3c3d90bea81603d\",\"dweb:/ipfs/QmWKW2CQdeYgK1x5L6i9k43wJVYxu9Qy6QUJD5aFoykQ8p\"]},\"src/factory/interfaces/ISizeFactoryV1_7.sol\":{\"keccak256\":\"0x88d8fee7f821de312741e741fcd2867e55905159002ba4d8ced827778bebde29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42df9dfc39ad1b6812bb10c74d1398d3882e207e9611cb2e857187d7c79e09a\",\"dweb:/ipfs/QmTcbh5pZjV2S6zj5x3nzvRJBBsyy5DuNLRD4Dvg5Ydydq\"]},\"src/factory/interfaces/ISizeFactoryV1_8.sol\":{\"keccak256\":\"0xa5581ab63a25a418017ef89e0a381e5876ebd9d3153b190eb06094f20fbda619\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48520aea55bd1d7716d6146c24af0b957c4f8ba310b7595b81bf10c4e1c28578\",\"dweb:/ipfs/QmbUWrZNpYX32r8JJnhpYU8tSS6XqxgjFdtyzNaKxJBfHL\"]},\"src/factory/libraries/Authorization.sol\":{\"keccak256\":\"0xd0759b2d19d649ede38497e36b8569cc49518a8f70927476e0713971306ab304\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79f301289c5908529bcaddcf4e1c18da9625460315462d9eca21192e1d26468d\",\"dweb:/ipfs/QmZZSLLP9hxdAVAqDhrqcdjPFL6evNKMvxEzcWUCfJmAn5\"]},\"src/helpers/ReentrancyGuardUpgradeableWithViewModifier.sol\":{\"keccak256\":\"0x44e0afa8b79734db3eb0278c752f0c74daf37e21b342ef7963ad28cfa6eddef6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c08003c5aaa58665815eba32b562db37d98eee0df1478bde70d3cdea490d02d\",\"dweb:/ipfs/QmQTPFYN7RMHRtBW2StZQX6c1QmK9gZH3msxsDo1makpBz\"]},\"src/market/SizeStorage.sol\":{\"keccak256\":\"0xcbb653a667ff847b25dedcdefd77ceeb73539e58f1d3a3c5e0235f4f7027d7b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de6d2642e9cfcf23e2161d90c9a446f38dad849ed5405a52b6e829a63b45caf9\",\"dweb:/ipfs/QmRY4FeZ7kUQLUx9DYX9vCWmZzAzD95keSCeVZUf7tALHi\"]},\"src/market/SizeViewData.sol\":{\"keccak256\":\"0x4fbd20e43987c211e0f8ab6ce467b4d017092a881ad544aa44a5d2f1d555df2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f4ada02248e1224356a5e1b4fce02c60e4f14c414052a09363e9803317eacf\",\"dweb:/ipfs/QmZ69LGdEoZWajqVWiHrDfctYmArkt9ZWMYARwX6htQQ7x\"]},\"src/market/interfaces/IMulticall.sol\":{\"keccak256\":\"0x6e37873de589b4bec14611f36d283ab797d149a2ea61be2d7f3ac32d503dbe41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88a1095d11f66268b50848a9868f28020583e8a4bb0d2885a59624c74e40f989\",\"dweb:/ipfs/QmSDYFNMkdriiJwn1crwmN4GGAsGCAMz89jaw3qAdALF7R\"]},\"src/market/interfaces/ISize.sol\":{\"keccak256\":\"0x124afa7a31aa6495975a98be40feb74591cf32bbe49d532e459b263f9cdc26ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c053783537613a5f7feacfd592aa1bf20f1e179e3585da4ad85e3fc3ca85507\",\"dweb:/ipfs/QmRbd68SUKxMZCuZS1jjnbYy4Q562MNdjxsucFxwT8zBdC\"]},\"src/market/interfaces/ISizeAdmin.sol\":{\"keccak256\":\"0xc4d3eca45501932692e471a063ae044a75c4554f22a074034cf0f5a332a670cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37acd1e3a79f29afcda3ad6bd199f0990054827ba19cc955b825315b3c5f1a95\",\"dweb:/ipfs/QmVs1pD82jrcGZkgYa2o5gkbQHpjhg6ssbQdZTDTu66fT5\"]},\"src/market/interfaces/ISizeView.sol\":{\"keccak256\":\"0xf34e38e63d35d793fa3c56d1bb732617f5e2e56b81f5319448d73ff5de7a0497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9a2cc5be5d3fbbb2bd9a722aedb3bf63cf97dafec3b4941035a5ea5129bc69\",\"dweb:/ipfs/QmNYiFubf2cqMKiwozvJgngMu3frneLsuTNv2xzikdAYw2\"]},\"src/market/interfaces/IWETH.sol\":{\"keccak256\":\"0x4f7e2b2d5033a819263abfafba2aa513dd9a25bb1ce21cfe497daa0ac4a9ec7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e209482985a7a680a0ffc2a6a6e3d0c1fb832db256dc1240c5b054fab19253e\",\"dweb:/ipfs/QmWQC9Qy3Mn9xfvM9xkcru9wcdTgq4jMjiJSbDtSMRfc9t\"]},\"src/market/interfaces/v1.7/ISizeV1_7.sol\":{\"keccak256\":\"0xf6dcf99539326bae7e1465eac7857f1a62d1d148d065510acea1a3f9a7e9d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87776d27879eb9e715f0b56ce5deb97f726b8018df831f2538563c3a8aa743c9\",\"dweb:/ipfs/QmdUwAo4orzYFXSogwjuZqnXGyrA3bZhpMVV4962E8ciSR\"]},\"src/market/interfaces/v1.8/ISizeV1_8.sol\":{\"keccak256\":\"0x539e339de13cfb2778f0b88e0962e72a0953f7ed41306815ba6da72f308ecbff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e5b98cdd5bc9107f4e890fd0c5ea6bfde4b5ffa803c72390a13579f4f81b114\",\"dweb:/ipfs/QmSQ7jXfUbhoScWLPwCkSaerqHxeBWmz6H1VVKtR8rYHhP\"]},\"src/market/interfaces/v1.8/ISizeViewV1_8.sol\":{\"keccak256\":\"0x25ce9dfa84f7a48195568808555684d9027d6b277691918a9269d84075c446de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0af34477c26cdee497c98a91d27fed7125752e7a5ed0a9f540b7f88eaa0b52fc\",\"dweb:/ipfs/QmaJf67ydi3WGc4VCA8TVYaXumRcMEjh2hEjTWNSGGS6mP\"]},\"src/market/libraries/AccountingLibrary.sol\":{\"keccak256\":\"0x7951928ccae855e9fabc380ad88075fee1822e00dadeeb969c5add0e7b1e9a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b895fa756fd379def6e9cb674a9618beeb7e7cc2f9708816cbafe36a56acd769\",\"dweb:/ipfs/QmbAg4HReEqmoJ23JrJpy7Rp2cgZA87VUgMrBFW3yr6Cp8\"]},\"src/market/libraries/Errors.sol\":{\"keccak256\":\"0xed73df3f39ba612c526ea09234b730cfdfa5ed399b279bb738fbfd5696b38bd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c0c78ee291a63f618a99ef99dfd2e6d2ff973f38a2b6fb92001a0a9c6329702\",\"dweb:/ipfs/QmQfuhKVMKebzmFYAN6EEDCWr7PpG884Xbqc6VL5XwVmuM\"]},\"src/market/libraries/Events.sol\":{\"keccak256\":\"0xce181000a07927aa14c59bc6d514b9829386610f4f6e8e987e7b577301707d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfa93b9e1ea3b94e298657b38c8ded2f180296a8054d9593b37695644b075908\",\"dweb:/ipfs/QmZ2kyGivGEo5smxeHZ4BZsFNEuy2WanW6PFbJaLrFcFMo\"]},\"src/market/libraries/LoanLibrary.sol\":{\"keccak256\":\"0x40dcae0ebbfff42282a5ceb00b5698c882242e028740099bc5828a08fa7e77e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efb877878b973bb6e8913cc3c4f4948ca7a43d0036dc243862cc8de7a3e92384\",\"dweb:/ipfs/QmYt8p1H7gAyTExvnKV1Anhfnjk5o774yi4ibHGUxByExv\"]},\"src/market/libraries/Math.sol\":{\"keccak256\":\"0xa270b1631b8b469d0e4bfddfaa0bf87ee285fa7532e1ed31f28674356fce0e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f0d027e9af0e81111d0b573c836502f94f5f0e5a3b5c0fc8ff025060e78bb53\",\"dweb:/ipfs/QmbS7Wnub3nmeo7yfeQht68MzWwMrQ3Ef7bUtiNtDMtXDx\"]},\"src/market/libraries/OfferLibrary.sol\":{\"keccak256\":\"0x55b32a6221d79312c857fa936342e229a74e440197e87603dfda8c57335c9401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9b3e4a528f8360c5ca36d66cfe1d60749613ccb722d1f7af91398bfbf397b9a\",\"dweb:/ipfs/QmRzh239xa5YHMrEWtAt4oCbzFdwNDqDgtz8EGZGiFqZW3\"]},\"src/market/libraries/RiskLibrary.sol\":{\"keccak256\":\"0xc639312f28fb460000aff9c0869ffb2c3bdaab5e6d5aff6895df6bc2d3461b7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4eb18a5f3fc5ecacc2a166e0f5c456246bcff32284d29fa14d819f7616c7718d\",\"dweb:/ipfs/QmR9aSvd6G1qmqTKvT21fHk8EVeKGjKysn34qpCFTXhKXz\"]},\"src/market/libraries/YieldCurveLibrary.sol\":{\"keccak256\":\"0x8d4b1f45d67387169c3b38cc034305eba91ad306dac7021d4658e3b8bbc9a135\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438376203571e01cbb26ea58c192d3036a1e623c0c5897c52aeafaa90e281cd3\",\"dweb:/ipfs/QmcRNJKsudM9bZvCPCSEQWxPHvVEfQD1u2MPf8S33fh3o3\"]},\"src/market/libraries/actions/BuyCreditLimit.sol\":{\"keccak256\":\"0xccb77182ce62b7ea147ee65ad7e32076f9e565a2605c18842087103e471f79f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://571a3265ef2664d9fea268e229af1bc0e430f458efe6898a03532de799d959ef\",\"dweb:/ipfs/QmSA1hphKNeRdqKtKpbfM3yof9TTd13r9X5ei7jNiuhcwQ\"]},\"src/market/libraries/actions/BuyCreditMarket.sol\":{\"keccak256\":\"0x8bc8b7c8c274648d666d0e83e3605f1cbc02b63f283fb72485e32cb2c9fdb1d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dfd2009d13f1cd03d1eff41195c66617b51390d65d7c805c0bd3ef288b9a5925\",\"dweb:/ipfs/QmczwzFqX7vugWArcsLvjzGzCkBsRyyrv5s8nUkq2iAnHx\"]},\"src/market/libraries/actions/Claim.sol\":{\"keccak256\":\"0x0145b5a2bef3cb5b6348c0826a020eaaf8db1880bb7aa2804bf03cc16eaf2adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de61cb5c77a1be1cc00990f8b21e1ad41005c811309244acb314d3e3f2324427\",\"dweb:/ipfs/QmVJJ8RgFXtNg3KLcevf99ZyhXQQtAH32i7MZXM1VLrbyd\"]},\"src/market/libraries/actions/Compensate.sol\":{\"keccak256\":\"0x5fa7ce8b74eeea09d12b78e3b31dbc7b37fca58b235299ad5d9f8e99ea400719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fbeff16ba76d1e3735f4d067ba16da7b0f35176ff9ea501a99f94063936bc5d\",\"dweb:/ipfs/QmYyogfmQmrpEksBc9uSjVQvYAWdaq31pJ3j6aAnc8D1rA\"]},\"src/market/libraries/actions/Deposit.sol\":{\"keccak256\":\"0x75e2039804c341b06705e712a8403350bf3860207178872eba02b12acc1a55e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76f871e1a3b6e9accffffac39be2a51d90cb16028511f0f54597bdb8e8c2c6fe\",\"dweb:/ipfs/QmNzQiqWUiVnqpL9EhyG9tbF36nksZJ3YeT3hNioQLCpwG\"]},\"src/market/libraries/actions/Initialize.sol\":{\"keccak256\":\"0xbad2d5f92aaeee28a87c1feda397f787cf1a2f8432bf05371f79b2309e9858f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c6959ee090add484fe99aa21bb8e879c36a97a1d00b4d49dfade775c4813a63\",\"dweb:/ipfs/QmZycV28jdCXWHy7QV7uqtqxaiReZaTYtvvgECuHb3gwJQ\"]},\"src/market/libraries/actions/Liquidate.sol\":{\"keccak256\":\"0x20e7ccfb443548a7325a592034bcfb6f474c313f9cf0453fafc45777a280d85f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec7a9075a20c68b7ca70c6b283692724d2e42faf0596187bd1075d8d7b6c03b1\",\"dweb:/ipfs/QmbHMZ2EmbhY4w51vWUkuEvr2r8XEkJkYvM56Tk5h1yr9G\"]},\"src/market/libraries/actions/LiquidateWithReplacement.sol\":{\"keccak256\":\"0xbf8028638ffc6a29e6b93a8f795ddbdfb5cb119c95c8c7bc0c446b3681514fca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f4db7ddad5d0e210fd133073ec80d63bdc7a6026ff74744fdc4aa83918b1230\",\"dweb:/ipfs/QmXSYimeiJRTx4sdBKZsPdY4HSDhK7gbsjB3bm596j7oT5\"]},\"src/market/libraries/actions/PartialRepay.sol\":{\"keccak256\":\"0xcca168dab87cf6c5a383340443041194ea3ca272aa48cdbe7ffcb263be767900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd4a81eeab2fbb3ac34e21fdfe3acf4cbae5802984ddd0eabcc4b5dcf5b80315\",\"dweb:/ipfs/QmVZ9wKB1vjGghXfCE3AFNGTiGLekqbLEELSdJ26eeXy3F\"]},\"src/market/libraries/actions/Repay.sol\":{\"keccak256\":\"0x8ce3d2f0cf14efb0489f509f244c05d8045ea5eecffceb2d932321d4f62a5474\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://773030fd26b7cd147d3c1c745a858e541dee98331c362de19e7c7f021be7c44e\",\"dweb:/ipfs/QmZ8Du3qDSdpM64JCD6PqfqQ4DtpcfaVX6ujiCEJhgUhX5\"]},\"src/market/libraries/actions/SelfLiquidate.sol\":{\"keccak256\":\"0x2d71cff942efc93fb7aa3a0a636e44562e0fa44ba4d503f323c6d08e7fdd8af3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdc43c74a42cffbf3844939df1d21a2b392ad3596ece8f1e9a6ebe08c2ec64be\",\"dweb:/ipfs/QmRUScCkvE4EADEUEvdwrsnzfLsq7xjFt1xsSZ4PZfs6J7\"]},\"src/market/libraries/actions/SellCreditLimit.sol\":{\"keccak256\":\"0xe8fe9ab69faccffa8539167973d13c5afe04ca8358316a092540171d084654b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c626cb1ad9347b0eabd162f590c61175cdc687958bc6684843201713c5efa89\",\"dweb:/ipfs/QmNqZc3Zh2Nvj6exvG89XShBY4WtBJSh6iKWr7gZB8sQ3k\"]},\"src/market/libraries/actions/SellCreditMarket.sol\":{\"keccak256\":\"0xf4bd799bb7cf51c565d530ff42cebf0a3b1d2b01a783f484c3ffda112eca962d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7d0d213d6c00b09f7508887541968939a960a86160f6812143bff9c07ecf86\",\"dweb:/ipfs/QmRafSq5sVAsmpttMGWM1FJJz9Gg1bTrVthP6k2Jppe9gr\"]},\"src/market/libraries/actions/SetCopyLimitOrderConfigs.sol\":{\"keccak256\":\"0x8f6f00418e9f62d99e316097724d50ae10369fc9049b1c5caff7d219410cc79e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36222343f8752b105bd7414e53281f30cdd1aa3ca45539dcfb5fe22d6eb5fdde\",\"dweb:/ipfs/QmRCpmVtGTXnRUUR5wPGjW1oSPg8PRcP39Sigfyt4YkXyG\"]},\"src/market/libraries/actions/SetUserConfiguration.sol\":{\"keccak256\":\"0x914026fea966b75688fe25a3ac2782a426134ebceb3f1b1719e650f2317dd04e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb5a25ca819ecf4137af74c23829aaf2d784b868e710f4b563378481426dd4a\",\"dweb:/ipfs/QmUTdYB2zr3gDaJ9Qj8ma8RypzdKDAeKWj1UwCS8MmnRrP\"]},\"src/market/libraries/actions/SetVault.sol\":{\"keccak256\":\"0xa9fd4994702f7dc36369fbfb3f7a3ed767b36619bf28471d7d7098aabca62dab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7eb78f54189a5ab0247264303eea0e576d9aa8a1ea3d81e3e4aefe1baef13a0\",\"dweb:/ipfs/Qmf7DVjjGGRDC4UY1tzLztwG6pEsutWGxiZ2ve1czCE93S\"]},\"src/market/libraries/actions/UpdateConfig.sol\":{\"keccak256\":\"0x040b1b2b4dfb446b50bce809c070a3b977e7c614f2bfdf632b10f9c89ec8d80e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://067a98624ca328a30debcd8d09adb675ad3ebeafe0829269ca5f42574babcca3\",\"dweb:/ipfs/QmU3K7oJnmknBtCyVNR6d2fLsUFCPvozr1DvY9W42cw1Eu\"]},\"src/market/libraries/actions/Withdraw.sol\":{\"keccak256\":\"0x1c0692507acd9052c4831b4a78fd6a7d54b7ab9743bf49e170441abdd5694247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1de43235c6ac35a2a752173ab67346feb750948d2091efd20053f051d7baa9\",\"dweb:/ipfs/QmXtbxAzykvnBSRuDWSFYybL6V7pqGwhjCGhkKQhSeb59i\"]},\"src/market/token/NonTransferrableRebasingTokenVault.sol\":{\"keccak256\":\"0x9178cafae5e58ebdaa1121fc7548514fc2e2b847ff1b375e42a968bef415ab30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c46fe4fccc7608958715b333f3ef8c3ec4a571c30ddb4650ac4651ff55357745\",\"dweb:/ipfs/QmUBKJwNUacfmRG6p6PFYQssKf6gCCt7dvmqDbnL3KsT7g\"]},\"src/market/token/NonTransferrableToken.sol\":{\"keccak256\":\"0xf82118604ddbcd5d9ff708d739396e993d9621cff7b07f22a519141ca39a9e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f371fb37a2ac76630302b1284d62e8657f038b504ce9884723574c2a3de32ec\",\"dweb:/ipfs/QmRsjmBirftC8Jih4jBG2BoJmpe4RRAAsEwsmtLjWicTVf\"]},\"src/market/token/adapters/IAaveAdapter.sol\":{\"keccak256\":\"0xd88333fa5a565a78d2fbdf408f2ff89b69f900bd13ae84e1b102f1a1527c1777\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1890c9632e9fa607c74524da6049080fe42bde8fdc6117136e12e2277dbac02e\",\"dweb:/ipfs/QmSD6udpnnRsXoqk6yHxjKpDxiQgmoxQTj3CoXrP64bxKd\"]},\"src/market/token/adapters/IAdapter.sol\":{\"keccak256\":\"0x579f476cae67f70982f6d158f90490ccacb37c88d4c9e4318ccee9be0d3ff692\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80e9fc7d1fa0dfa85846e80a7ba766c68a39310c604d326f547f9278c2943574\",\"dweb:/ipfs/QmS1fNU7hrH21a2ZusfxMqaQvtzAgbdJkcbfw8ps3QB5oQ\"]},\"src/oracle/IPriceFeed.sol\":{\"keccak256\":\"0x7ec983afe56cc8eee5d4b3573a51665ad0cfc8835f8fb8fd864b2a5a119f9a90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fc706986c7c132d4b0b95ec2f7b3aa49def6511ebe84643ee1359b2318da48\",\"dweb:/ipfs/QmQCwub8SCenVvQnVtL24Eny3jNZrugoxKsu86da55nBKJ\"]},\"src/oracle/adapters/ChainlinkPriceFeed.sol\":{\"keccak256\":\"0x71a4ccb7d9469f4d7a914a81c754b1278152a387f8154e0f9793e0e3d010a599\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d953653f6481b344d0d00a677a8301f3006a50c3b90744c39cd3eda6f508818b\",\"dweb:/ipfs/QmYR1RvdMboMpH9ykJN5WwuC3AabSvPS2JA4t4afxa7gyh\"]},\"src/oracle/adapters/ChainlinkSequencerUptimeFeed.sol\":{\"keccak256\":\"0x3d200d7fcc7c457a201f2bb32a0b68ea13b2b697cb300bbd587828bff5ffe8b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d72923e346e73eb0d42d055437dc6df059c3a8f27b08ff5aacd7cf7fdf90eec5\",\"dweb:/ipfs/QmPYENtSCwseMxYtQeKAkVe8DuCJYzRGpFRxDgw85xf2g8\"]},\"src/oracle/adapters/UniswapV3PriceFeed.sol\":{\"keccak256\":\"0x84027f9673163df8f7dcbd7c828cf5bada6a9c7de1986d3821ec75004a11f639\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0caf13ef11f4ad681f395ee48145d72fcd3a1eae5b439efb132be9cccd8f1243\",\"dweb:/ipfs/QmdrnR1auzKaQhZ7AqWRKHnajw1Y6oLmdNFYJzKLzb5E72\"]},\"src/oracle/v1.5.1/PriceFeed.sol\":{\"keccak256\":\"0x36473f98f23968eaab386e44c1404652c7ef88c09db9772ab3195d8305829762\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5db471c144f3a43e9e07391890e7b29e39b64ae3fb0e73b66dd313801b03542a\",\"dweb:/ipfs/Qmf5GMB6SdKNCUPCbV4nYmxUjg6z3iKiweYU2ajY9BrGbC\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.23+commit.f704f362" }, "language": "Solidity", @@ -1201,7 +1126,6 @@ "stateMutability": "nonpayable", "type": "constructor" }, - { "inputs": [], "type": "error", "name": "ARRAY_LENGTHS_MISMATCH" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, @@ -1310,14 +1234,6 @@ "name": "ERC721OutOfBoundsIndex" }, { "inputs": [], "type": "error", "name": "FailedCall" }, - { - "inputs": [ - { "internalType": "uint256", "name": "minAPR", "type": "uint256" }, - { "internalType": "uint256", "name": "maxAPR", "type": "uint256" } - ], - "type": "error", - "name": "INVALID_APR_RANGE" - }, { "inputs": [ { "internalType": "address", "name": "market", "type": "address" } @@ -1325,18 +1241,6 @@ "type": "error", "name": "INVALID_MARKET" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minTenor", - "type": "uint256" - }, - { "internalType": "uint256", "name": "maxTenor", "type": "uint256" } - ], - "type": "error", - "name": "INVALID_TENOR_RANGE" - }, { "inputs": [ { @@ -1399,6 +1303,13 @@ "type": "error", "name": "OnlySizeFactory" }, + { + "inputs": [ + { "internalType": "address", "name": "market", "type": "address" } + ], + "type": "error", + "name": "PAUSED_MARKET" + }, { "inputs": [ { "internalType": "int256", "name": "value", "type": "int256" } @@ -1428,174 +1339,102 @@ { "inputs": [ { - "internalType": "uint256", - "name": "collectionId", - "type": "uint256", + "internalType": "address", + "name": "owner", + "type": "address", "indexed": true }, { "internalType": "address", - "name": "market", + "name": "approved", "type": "address", "indexed": true }, { - "internalType": "struct CopyLimitOrderConfig", - "name": "copyLoanOfferConfig", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "minTenor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTenor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxAPR", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "offsetAPR", - "type": "int256" - } - ], - "indexed": false - }, - { - "internalType": "struct CopyLimitOrderConfig", - "name": "copyBorrowOfferConfig", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "minTenor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTenor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxAPR", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "offsetAPR", - "type": "int256" - } - ], - "indexed": false + "internalType": "uint256", + "name": "tokenId", + "type": "uint256", + "indexed": true } ], "type": "event", - "name": "AddMarketToCollection", + "name": "Approval", "anonymous": false }, { "inputs": [ - { - "internalType": "uint256", - "name": "collectionId", - "type": "uint256", - "indexed": true - }, { "internalType": "address", - "name": "market", + "name": "owner", "type": "address", "indexed": true }, { "internalType": "address", - "name": "rateProvider", + "name": "operator", "type": "address", "indexed": true + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool", + "indexed": false } ], "type": "event", - "name": "AddRateProviderToMarket", + "name": "ApprovalForAll", "anonymous": false }, { "inputs": [ { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": true - }, - { - "internalType": "address", - "name": "approved", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256", - "indexed": true + "internalType": "uint64", + "name": "version", + "type": "uint64", + "indexed": false } ], "type": "event", - "name": "Approval", + "name": "Initialized", "anonymous": false }, { "inputs": [ { - "internalType": "address", - "name": "owner", - "type": "address", + "internalType": "uint256", + "name": "collectionId", + "type": "uint256", "indexed": true }, { "internalType": "address", - "name": "operator", + "name": "market", "type": "address", - "indexed": true - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool", - "indexed": false + "indexed": true } ], "type": "event", - "name": "ApprovalForAll", + "name": "MarketAddedToCollection", "anonymous": false }, { "inputs": [ { - "internalType": "uint64", - "name": "version", - "type": "uint64", - "indexed": false + "internalType": "uint256", + "name": "collectionId", + "type": "uint256", + "indexed": true + }, + { + "internalType": "address", + "name": "market", + "type": "address", + "indexed": true } ], "type": "event", - "name": "Initialized", + "name": "MarketRemovedFromCollection", "anonymous": false }, { @@ -1611,10 +1450,16 @@ "name": "market", "type": "address", "indexed": true + }, + { + "internalType": "address", + "name": "rateProvider", + "type": "address", + "indexed": true } ], "type": "event", - "name": "RemoveMarketFromCollection", + "name": "RateProviderAddedToMarket", "anonymous": false }, { @@ -1639,7 +1484,92 @@ } ], "type": "event", - "name": "RemoveRateProviderFromMarket", + "name": "RateProviderRemovedFromMarket", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "collectionId", + "type": "uint256", + "indexed": true + }, + { + "internalType": "struct CopyLimitOrderConfig", + "name": "copyLoanOfferConfig", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "minTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxAPR", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "offsetAPR", + "type": "int256" + } + ], + "indexed": false + }, + { + "internalType": "struct CopyLimitOrderConfig", + "name": "copyBorrowOfferConfig", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "minTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxAPR", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "offsetAPR", + "type": "int256" + } + ], + "indexed": false + } + ], + "type": "event", + "name": "SetUserCollectionCopyLimitOrderConfigs", "anonymous": false }, { @@ -1855,108 +1785,6 @@ { "internalType": "uint256", "name": "apr", "type": "uint256" } ] }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "collectionId", - "type": "uint256" - }, - { - "internalType": "contract ISize", - "name": "market", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getCollectionMarketCopyBorrowOfferConfig", - "outputs": [ - { - "internalType": "struct CopyLimitOrderConfig", - "name": "copyLimitOrder", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "minTenor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTenor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxAPR", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "offsetAPR", - "type": "int256" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "collectionId", - "type": "uint256" - }, - { - "internalType": "contract ISize", - "name": "market", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getCollectionMarketCopyLoanOfferConfig", - "outputs": [ - { - "internalType": "struct CopyLimitOrderConfig", - "name": "copyLimitOrder", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "minTenor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTenor", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxAPR", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "offsetAPR", - "type": "int256" - } - ] - } - ] - }, { "inputs": [ { @@ -2271,20 +2099,16 @@ }, { "inputs": [ + { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "collectionId", "type": "uint256" }, { - "internalType": "contract ISize[]", - "name": "markets", - "type": "address[]" - }, - { - "internalType": "struct CopyLimitOrderConfig[]", - "name": "copyLoanOfferConfigs", - "type": "tuple[]", + "internalType": "struct CopyLimitOrderConfig", + "name": "copyLoanOfferConfig", + "type": "tuple", "components": [ { "internalType": "uint256", @@ -2314,9 +2138,9 @@ ] }, { - "internalType": "struct CopyLimitOrderConfig[]", - "name": "copyBorrowOfferConfigs", - "type": "tuple[]", + "internalType": "struct CopyLimitOrderConfig", + "name": "copyBorrowOfferConfig", + "type": "tuple", "components": [ { "internalType": "uint256", @@ -2348,7 +2172,7 @@ ], "stateMutability": "nonpayable", "type": "function", - "name": "setCollectionMarketConfigs" + "name": "setUserCollectionCopyLimitOrderConfigs" }, { "inputs": [ @@ -2511,22 +2335,6 @@ }, "returns": { "apr": "The borrow offer APR" } }, - "getCollectionMarketCopyBorrowOfferConfig(uint256,address)": { - "params": { - "collectionId": "The collection ID to get the copy borrow offer config for", - "market": "The market to get the copy borrow offer config for" - }, - "returns": { - "copyLimitOrder": "config The copy borrow offer config" - } - }, - "getCollectionMarketCopyLoanOfferConfig(uint256,address)": { - "params": { - "collectionId": "The collection ID to get the copy loan offer config for", - "market": "The market to get the copy loan offer config for" - }, - "returns": { "copyLimitOrder": "config The copy loan offer config" } - }, "getCollectionMarketRateProviders(uint256,address)": { "params": { "collectionId": "The collection ID to get the rate providers for", @@ -2641,13 +2449,13 @@ "setApprovalForAll(address,bool)": { "details": "See {IERC721-setApprovalForAll}." }, - "setCollectionMarketConfigs(uint256,address[],(uint256,uint256,uint256,uint256,int256)[],(uint256,uint256,uint256,uint256,int256)[])": { - "details": "This function has the same effect as calling `addMarketsToCollection` but with a custom config for each market", + "setUserCollectionCopyLimitOrderConfigs(address,uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": { + "details": "Only callable by the SizeFactoryAdded in v1.8.1", "params": { - "collectionId": "The collection ID", - "copyBorrowOfferConfigs": "The copy limit order parameters for borrow offers", - "copyLoanOfferConfigs": "The copy limit order parameters for loan offers", - "markets": "The markets to set the configs for" + "collectionId": "The collection ID to set the copy limit order configs for", + "copyBorrowOfferConfig": "The copy limit order config for the borrow offer", + "copyLoanOfferConfig": "The copy limit order config for the loan offer", + "user": "The user to set the copy limit order configs for" } }, "subscribeUserToCollections(address,uint256[])": { @@ -2704,12 +2512,6 @@ "getBorrowOfferAPR(address,uint256,address,address,uint256)": { "notice": "Get the borrow offer APR for a user, collection, market, rate provider and tenor" }, - "getCollectionMarketCopyBorrowOfferConfig(uint256,address)": { - "notice": "Get the copy borrow offer config for a collection market" - }, - "getCollectionMarketCopyLoanOfferConfig(uint256,address)": { - "notice": "Get the copy loan offer config for a collection market" - }, "getCollectionMarketRateProviders(uint256,address)": { "notice": "Get the rate providers for a collection market" }, @@ -2740,8 +2542,8 @@ "removeRateProvidersFromCollectionMarket(uint256,address,address[])": { "notice": "Removes rate providers from a collection market" }, - "setCollectionMarketConfigs(uint256,address[],(uint256,uint256,uint256,uint256,int256)[],(uint256,uint256,uint256,uint256,int256)[])": { - "notice": "Sets the collection market configs" + "setUserCollectionCopyLimitOrderConfigs(address,uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": { + "notice": "Set the copy limit order configs for a user and collection" }, "subscribeUserToCollections(address,uint256[])": { "notice": "Subscribe a user to collections" @@ -2768,6 +2570,7 @@ "@script/=script/", "@solady/=lib/solady/", "@solidity-http/=lib/solidity-http/src/", + "@solmate/=lib/solmate/", "@src/=src/", "@tenderly-utils/=lib/tenderly-utils/src/", "@test/=test/", @@ -2778,10 +2581,11 @@ "aave-v3-core/=lib/aave-v3-core/", "chainlink/=lib/chainlink/contracts/", "chimera/=lib/chimera/src/", - "ds-test/=lib/solady/lib/ds-test/src/", + "ds-test/=lib/solmate/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/halmos-cheatcodes/src/", + "halmos-helpers-lib/=lib/halmos-helpers-lib/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/", @@ -2791,7 +2595,10 @@ "solady/=lib/solady/", "solidity-http/=lib/solidity-http/src/", "solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/", - "solmate/=lib/properties/lib/solmate/src/", + "solmate/auth/=lib/solmate/src/auth/", + "solmate/mixins/=lib/solmate/src/tokens/", + "solmate/tokens/=lib/solmate/src/tokens/", + "solmate/utils/=lib/solmate/src/utils/", "tenderly-utils/=lib/tenderly-utils/src/", "v3-core/=lib/v3-core/contracts/", "v3-periphery/=lib/v3-periphery/contracts/" @@ -2957,6 +2764,22 @@ ], "license": "MIT" }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol": { + "keccak256": "0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5", + "urls": [ + "bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb", + "dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol": { + "keccak256": "0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866", + "urls": [ + "bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf", + "dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv" + ], + "license": "MIT" + }, "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol": { "keccak256": "0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab", "urls": [ @@ -3366,34 +3189,34 @@ "license": "MIT" }, "src/collections/CollectionsManagerBase.sol": { - "keccak256": "0x6f48eee8183e7d07e39f06c463d0da0be5383d2c4df0ad9015354ea80868a12c", + "keccak256": "0xadd6127e50b9752bfcc5c5bd2a278f1d2d995f41f246690a174f87df36ac007b", "urls": [ - "bzz-raw://f4627902e85711e9d7970da4e844b6c980e9c57e8a994621634c38dad777b4ee", - "dweb:/ipfs/QmNa2582FHgAFcm2M2zNdJZxyBiQFHAveGbobY7UqHAd4K" + "bzz-raw://a8f91184624c0119407f4908e327af6f6274a87dc8cccd34e7c8fb0ec59a8884", + "dweb:/ipfs/QmTBNqr6mUUNbVc1kGurGCWMD8vZaeTTwJDoPSsGZt9LUG" ], "license": "MIT" }, "src/collections/actions/CollectionsManagerCuratorActions.sol": { - "keccak256": "0xe716bf4597091cfcae5c5039711d331f999f3935510a5de1e61d70dcdb60822a", + "keccak256": "0xf810cfde07165257f1939da7fbe845aaf9442d8a2c131a362a8945e3e764ab8d", "urls": [ - "bzz-raw://903d3fc048e7756023e37a9069af0d732fa6f3670a94e765dff66077028fbe9c", - "dweb:/ipfs/QmafzQXAnrpHkt4yk7a5V41QaqejEm2MjFVXnSTR4UdzCj" + "bzz-raw://ed9343183b5415f4881d01d20617cd0fd2c5030e78df4840be5f6e1530048635", + "dweb:/ipfs/QmQF1TJrS9whZNAMnXq9vDL5TKBGGpLid4APq9uZwXsX6D" ], "license": "MIT" }, "src/collections/actions/CollectionsManagerUserActions.sol": { - "keccak256": "0x4d961355fadf16e0d5a2b848ad466bd0039f9c508322bbbe29883346333412b1", + "keccak256": "0x21da34e960a401df867f5977ee5072014d9ce1c8ccf8db362b370c0516c44450", "urls": [ - "bzz-raw://4f8fb10f5247f6feb1dc8e0b0adad1dce345ca2bc709fdf0daeca0149c5e4029", - "dweb:/ipfs/QmTqCbqE3MqXWG4CeLsbjNMmvjZVAym9SrzSeiDVEQ5vWW" + "bzz-raw://5723cf6ce4b59694e3777df195a6707e7f563954aa2d2d26ac0d0fb0e0e6ec58", + "dweb:/ipfs/QmSvhaf5ZT5tYzszaQTy2DTr4GJBRbduRo2kcst3pr6cqB" ], "license": "MIT" }, "src/collections/actions/CollectionsManagerView.sol": { - "keccak256": "0x65b623634495054d58d550d8593f74362c937d4e3f178cdcc2abb49bc4c4ff09", + "keccak256": "0x3bbe4d2f0051b3dc5e70f3284e6265a1334bba30081ff1d3469b80d400b0d853", "urls": [ - "bzz-raw://334c5a9970c22ce7036720000827d374029d065e97031e56c9bf702fae11dbe7", - "dweb:/ipfs/QmTCXsDc1NoYtdTqaLgV2f5qF46eXdF8KN1fWHqjPFfKde" + "bzz-raw://42a3ea79ae5741a42e60de436cfc36f94306c52dedc3d7574942a51513acb3c0", + "dweb:/ipfs/QmSn48PLxYqAKkgVtYsoerLfFkZqyGusaE1qhAt34bFc1g" ], "license": "MIT" }, @@ -3406,26 +3229,26 @@ "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerCuratorActions.sol": { - "keccak256": "0xf04a0cd0a4b55d018150f2503db4847c60616ee74f87b970ef974079d228c214", + "keccak256": "0x7420c54515b8bd3ae387671d7ebc03cee304bffb68bea11388e6f993654c72be", "urls": [ - "bzz-raw://09b837a6f5199ed958c07f67a43b2594a1437535bffe18c024b28596c36e4d97", - "dweb:/ipfs/QmUBjXk8XfiJQV3EHsotzNkQMwcY1SoFAh5HXafXobSeUm" + "bzz-raw://5228ec9921301a2da45018f00a7dde6a152549cb1f08941e6612f444448baa84", + "dweb:/ipfs/QmZpmzHiaW5X9TQ9Q7myAzBxpffBKh8Ty58Epj5s82AuMX" ], "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerUserActions.sol": { - "keccak256": "0x552b44f8d5735c65ecf42884d51257087bbfcd2c3feccf1f63fa5adc53984ff8", + "keccak256": "0x5eeaffedce45f266039fa0c14e150fa9b65cae668073872d362092b70a4bba36", "urls": [ - "bzz-raw://66e4ec097f1e67e2c36117eaff4bb5de858a6f08c7dccacf25453df673eccde9", - "dweb:/ipfs/Qmdmw2dJzKFdBmATxhtCAsLqHN7igEmVQGTBuonRXHm5K9" + "bzz-raw://5ce96526ff03f209bdc824dc23a87c9270cd4a258c6e809397c21899301a575a", + "dweb:/ipfs/QmNRFmXMGH3YWLXkqPFeSz9bgKrHBFKvH7yNJYKBS6bW2k" ], "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerView.sol": { - "keccak256": "0x3122f5f96caf4125f5841e2c38339ef3589d956c44bdf3028a0f083fc8719dce", + "keccak256": "0x3802e370d2ba7707f50aae8d85f8d5a5bb3496dc0379b3db3294facd0d75c0f5", "urls": [ - "bzz-raw://4d6fe2a9b4f75c2a0bab02559c1e298f75154a91706595a3988f72ae893c09d8", - "dweb:/ipfs/QmaKAc7aR4nvwtbBy5U6kxDF9zHeisEYVfeHxzMcuLy6py" + "bzz-raw://197a2965fef0b04dc2bc06783ff765af3c585678b348c1e4882e34b0a953d94e", + "dweb:/ipfs/QmTGmm9i3JbNdGXGspv1pnKLCh9VoPyDM28Fx9XfYJoHrn" ], "license": "MIT" }, @@ -3454,26 +3277,34 @@ "license": "MIT" }, "src/factory/interfaces/ISizeFactoryV1_8.sol": { - "keccak256": "0x4bfa5ade9c609d5fa3d3ebe4f01e9b285d7a1ae16e6c7d8a671d23f911b8fbe5", + "keccak256": "0xa5581ab63a25a418017ef89e0a381e5876ebd9d3153b190eb06094f20fbda619", "urls": [ - "bzz-raw://9b23af69a7949c34386a4b5268dbe773725f0343665e3422121fe0160566f90b", - "dweb:/ipfs/QmRovMzxG4jAF13JMqgbrtAuSBZFbdoaNtRmsAEVvcYjBX" + "bzz-raw://48520aea55bd1d7716d6146c24af0b957c4f8ba310b7595b81bf10c4e1c28578", + "dweb:/ipfs/QmbUWrZNpYX32r8JJnhpYU8tSS6XqxgjFdtyzNaKxJBfHL" ], "license": "MIT" }, "src/factory/libraries/Authorization.sol": { - "keccak256": "0xf42a6c9392e33ad8d3be9045864c896a1552b4c3e4775198b990ea0b165f8908", + "keccak256": "0xd0759b2d19d649ede38497e36b8569cc49518a8f70927476e0713971306ab304", + "urls": [ + "bzz-raw://79f301289c5908529bcaddcf4e1c18da9625460315462d9eca21192e1d26468d", + "dweb:/ipfs/QmZZSLLP9hxdAVAqDhrqcdjPFL6evNKMvxEzcWUCfJmAn5" + ], + "license": "MIT" + }, + "src/helpers/ReentrancyGuardUpgradeableWithViewModifier.sol": { + "keccak256": "0x44e0afa8b79734db3eb0278c752f0c74daf37e21b342ef7963ad28cfa6eddef6", "urls": [ - "bzz-raw://02603db5e7c1b4df6b1f474e24fbd3b82e33e46deb84de07d0222bb26d2781af", - "dweb:/ipfs/QmaDuJawdoxgvVvMerZW8CMQZXKJPXhuH4RASMTfuMJX96" + "bzz-raw://8c08003c5aaa58665815eba32b562db37d98eee0df1478bde70d3cdea490d02d", + "dweb:/ipfs/QmQTPFYN7RMHRtBW2StZQX6c1QmK9gZH3msxsDo1makpBz" ], "license": "MIT" }, "src/market/SizeStorage.sol": { - "keccak256": "0x221b1433eadc854eb92d00f8c9c2b2240cf13010e59f11d117adbae0f44b8292", + "keccak256": "0xcbb653a667ff847b25dedcdefd77ceeb73539e58f1d3a3c5e0235f4f7027d7b6", "urls": [ - "bzz-raw://b3de7469241243203c5e033e1585094a18e01cf085a0df55abaa9b07fa3b0ab5", - "dweb:/ipfs/QmNrzYBgJD87LZJSd4St71nqfQRJBjRKpicx7PYDsdeufa" + "bzz-raw://de6d2642e9cfcf23e2161d90c9a446f38dad849ed5405a52b6e829a63b45caf9", + "dweb:/ipfs/QmRY4FeZ7kUQLUx9DYX9vCWmZzAzD95keSCeVZUf7tALHi" ], "license": "MIT" }, @@ -3494,26 +3325,26 @@ "license": "MIT" }, "src/market/interfaces/ISize.sol": { - "keccak256": "0x40b4880fd0c38a481657cc850edee8c0e76df6b36c86fda08db9704089aaa142", + "keccak256": "0x124afa7a31aa6495975a98be40feb74591cf32bbe49d532e459b263f9cdc26ea", "urls": [ - "bzz-raw://2725d31deb88142806b1932c94a2fe7a29f4342e4d30ce10f789c83706c17912", - "dweb:/ipfs/QmQfruVNCbhsNZDftExivWc8gGmSGfPNLKjDHrEAWUwe1m" + "bzz-raw://4c053783537613a5f7feacfd592aa1bf20f1e179e3585da4ad85e3fc3ca85507", + "dweb:/ipfs/QmRbd68SUKxMZCuZS1jjnbYy4Q562MNdjxsucFxwT8zBdC" ], "license": "MIT" }, "src/market/interfaces/ISizeAdmin.sol": { - "keccak256": "0x1f2fda9cf43a960e920186ce0414d596f0c73e20e0ab262a047ffcab5b8a4a9c", + "keccak256": "0xc4d3eca45501932692e471a063ae044a75c4554f22a074034cf0f5a332a670cc", "urls": [ - "bzz-raw://092faa4adc6268f096580faebcf426c87def65e02525abfecd04aa1acfceaa88", - "dweb:/ipfs/QmWtjocrjvMRqKH47XiP7GKPRPKPCX3ApnpgpFjt3X9eRf" + "bzz-raw://37acd1e3a79f29afcda3ad6bd199f0990054827ba19cc955b825315b3c5f1a95", + "dweb:/ipfs/QmVs1pD82jrcGZkgYa2o5gkbQHpjhg6ssbQdZTDTu66fT5" ], "license": "MIT" }, "src/market/interfaces/ISizeView.sol": { - "keccak256": "0xb3c51331a555a1525c7d011cc732d6d5658eb77d55d289382b00c125d3ba7617", + "keccak256": "0xf34e38e63d35d793fa3c56d1bb732617f5e2e56b81f5319448d73ff5de7a0497", "urls": [ - "bzz-raw://5b6e78c75a3c09096562538c3000cda5d9d1771799a4eb9c5b4511b6c1ba2a9b", - "dweb:/ipfs/QmPiFHxx5BCmwyiCKMEgERMLQit7CqoQsCTwMKVBjSdrjZ" + "bzz-raw://2c9a2cc5be5d3fbbb2bd9a722aedb3bf63cf97dafec3b4941035a5ea5129bc69", + "dweb:/ipfs/QmNYiFubf2cqMKiwozvJgngMu3frneLsuTNv2xzikdAYw2" ], "license": "MIT" }, @@ -3526,26 +3357,26 @@ "license": "MIT" }, "src/market/interfaces/v1.7/ISizeV1_7.sol": { - "keccak256": "0xd884198d67b3d0d77fd5cc30ae96f18f0748b7f540704c130b7b163982d57e83", + "keccak256": "0xf6dcf99539326bae7e1465eac7857f1a62d1d148d065510acea1a3f9a7e9d572", "urls": [ - "bzz-raw://6948005cacbd6c490a8d158a9d8972b4baf0a05e1715d6c790b6d1f42f0d9b47", - "dweb:/ipfs/Qmcp2Atca3wK2V1cyMdKLgBQkTPdYjeXqM5zjw3aF3KCdc" + "bzz-raw://87776d27879eb9e715f0b56ce5deb97f726b8018df831f2538563c3a8aa743c9", + "dweb:/ipfs/QmdUwAo4orzYFXSogwjuZqnXGyrA3bZhpMVV4962E8ciSR" ], "license": "MIT" }, - "src/market/interfaces/v1.7/ISizeViewV1_7.sol": { - "keccak256": "0x1ae3e0e566182a39cea1e4a4b2f3ba8e47c9c5dc8aeed24fd5a90d35a5dd317e", + "src/market/interfaces/v1.8/ISizeV1_8.sol": { + "keccak256": "0x539e339de13cfb2778f0b88e0962e72a0953f7ed41306815ba6da72f308ecbff", "urls": [ - "bzz-raw://3c79e7a02e98992bca9e5bc5eb4513100b557f511b1cb0245f7838e12e87efeb", - "dweb:/ipfs/QmPZDziwpJsReTqbzF7JiWntq4XitinnAJjDd393ePRB6T" + "bzz-raw://0e5b98cdd5bc9107f4e890fd0c5ea6bfde4b5ffa803c72390a13579f4f81b114", + "dweb:/ipfs/QmSQ7jXfUbhoScWLPwCkSaerqHxeBWmz6H1VVKtR8rYHhP" ], "license": "MIT" }, "src/market/interfaces/v1.8/ISizeViewV1_8.sol": { - "keccak256": "0xd44b700b471fcdd6dab74676eca4a3d2ab7435c478cdc83c09ff3426c3eec9b1", + "keccak256": "0x25ce9dfa84f7a48195568808555684d9027d6b277691918a9269d84075c446de", "urls": [ - "bzz-raw://440c6ab93d7bf25b47885feb522e0f71963a2bb3247ba820c0f5ce6c3274feb7", - "dweb:/ipfs/QmV4cAiAb16rMZeKWqtDe69Z9NKWHcuxvGJ6pqxbBa9GUu" + "bzz-raw://0af34477c26cdee497c98a91d27fed7125752e7a5ed0a9f540b7f88eaa0b52fc", + "dweb:/ipfs/QmaJf67ydi3WGc4VCA8TVYaXumRcMEjh2hEjTWNSGGS6mP" ], "license": "MIT" }, @@ -3558,18 +3389,18 @@ "license": "MIT" }, "src/market/libraries/Errors.sol": { - "keccak256": "0x7abdde1b276a117d81a1620afa3480be06bf144e072818e693969cf3d2a14baa", + "keccak256": "0xed73df3f39ba612c526ea09234b730cfdfa5ed399b279bb738fbfd5696b38bd0", "urls": [ - "bzz-raw://af0be4d6bed4cb5478cf73bda6c1fddc9ab6b77f3c34835deb3f1bdcefc3a882", - "dweb:/ipfs/QmX7gNjXw5ZXCWkTPkHnqfA8XPa4m1mrQvJcsRumKtkbvx" + "bzz-raw://2c0c78ee291a63f618a99ef99dfd2e6d2ff973f38a2b6fb92001a0a9c6329702", + "dweb:/ipfs/QmQfuhKVMKebzmFYAN6EEDCWr7PpG884Xbqc6VL5XwVmuM" ], "license": "MIT" }, "src/market/libraries/Events.sol": { - "keccak256": "0x85079adf3af32759510c2dbd82ab3f5153ea2ee4b7f2d35c9162659308f3db6f", + "keccak256": "0xce181000a07927aa14c59bc6d514b9829386610f4f6e8e987e7b577301707d60", "urls": [ - "bzz-raw://296805f12ae70a15193390ffa8efbc611460227a995a9e1d46e0b3d4228b3f0a", - "dweb:/ipfs/QmeGzcqCvi7hfk6Bxv7vVZvvfLFCzSup93MwrpRWQZB82K" + "bzz-raw://cfa93b9e1ea3b94e298657b38c8ded2f180296a8054d9593b37695644b075908", + "dweb:/ipfs/QmZ2kyGivGEo5smxeHZ4BZsFNEuy2WanW6PFbJaLrFcFMo" ], "license": "MIT" }, @@ -3590,10 +3421,10 @@ "license": "MIT" }, "src/market/libraries/OfferLibrary.sol": { - "keccak256": "0x542c3ba9d51c00f0d02c7db31b27eedc6d5cb7d723b63f5fcf4ee360e0c43098", + "keccak256": "0x55b32a6221d79312c857fa936342e229a74e440197e87603dfda8c57335c9401", "urls": [ - "bzz-raw://d498bf3e0e807c69c06f51509a506078dbd9d407ba36966f6979d1bb494d6ea4", - "dweb:/ipfs/QmPH4Hz8SgTErj42X3xGHxid6BQiYudwbgEE6ZJ88kNTbv" + "bzz-raw://d9b3e4a528f8360c5ca36d66cfe1d60749613ccb722d1f7af91398bfbf397b9a", + "dweb:/ipfs/QmRzh239xa5YHMrEWtAt4oCbzFdwNDqDgtz8EGZGiFqZW3" ], "license": "MIT" }, @@ -3645,14 +3476,6 @@ ], "license": "MIT" }, - "src/market/libraries/actions/CopyLimitOrders.sol": { - "keccak256": "0x0a05feb3e672625f69bfddee0a52201018e3b6d2eaa11a6b15fde1841ef99fef", - "urls": [ - "bzz-raw://747191eaf25efda3490ae6619b0f2b252231b8750b83ae6c078ef9bf8125942b", - "dweb:/ipfs/QmUiLrSfYdHUqDKAm6Ted47aQvV3ysHETarRbitvdGWbVg" - ], - "license": "MIT" - }, "src/market/libraries/actions/Deposit.sol": { "keccak256": "0x75e2039804c341b06705e712a8403350bf3860207178872eba02b12acc1a55e0", "urls": [ @@ -3678,10 +3501,10 @@ "license": "MIT" }, "src/market/libraries/actions/LiquidateWithReplacement.sol": { - "keccak256": "0x7bb6ac2228d387c7a8e3f38299b847a3123f26bcb6294b22ee11970b9a042cbb", + "keccak256": "0xbf8028638ffc6a29e6b93a8f795ddbdfb5cb119c95c8c7bc0c446b3681514fca", "urls": [ - "bzz-raw://34cfbe1582855e30a25cf3b4326d9a752e1901b50776779ca92d094e9509dea3", - "dweb:/ipfs/QmNZiMDEjt41JYUsrkyNDfKGqSMxbFMAaf2dbznqaEfvVT" + "bzz-raw://9f4db7ddad5d0e210fd133073ec80d63bdc7a6026ff74744fdc4aa83918b1230", + "dweb:/ipfs/QmXSYimeiJRTx4sdBKZsPdY4HSDhK7gbsjB3bm596j7oT5" ], "license": "MIT" }, @@ -3725,11 +3548,27 @@ ], "license": "MIT" }, + "src/market/libraries/actions/SetCopyLimitOrderConfigs.sol": { + "keccak256": "0x8f6f00418e9f62d99e316097724d50ae10369fc9049b1c5caff7d219410cc79e", + "urls": [ + "bzz-raw://36222343f8752b105bd7414e53281f30cdd1aa3ca45539dcfb5fe22d6eb5fdde", + "dweb:/ipfs/QmRCpmVtGTXnRUUR5wPGjW1oSPg8PRcP39Sigfyt4YkXyG" + ], + "license": "MIT" + }, "src/market/libraries/actions/SetUserConfiguration.sol": { - "keccak256": "0xfc4ebcf3b25f112bf4f268167289f65904d45484a35930c5a665a6a405b10f07", + "keccak256": "0x914026fea966b75688fe25a3ac2782a426134ebceb3f1b1719e650f2317dd04e", "urls": [ - "bzz-raw://2c65465dd5d1fbeb0c5ce1b48cce941b2c92dcf32d1f1d3e543513ec858bd9df", - "dweb:/ipfs/QmQNQSUFHYNgvemQNT5HtcLR2ybe4uHLT8o3rDVXHfFbwt" + "bzz-raw://7bb5a25ca819ecf4137af74c23829aaf2d784b868e710f4b563378481426dd4a", + "dweb:/ipfs/QmUTdYB2zr3gDaJ9Qj8ma8RypzdKDAeKWj1UwCS8MmnRrP" + ], + "license": "MIT" + }, + "src/market/libraries/actions/SetVault.sol": { + "keccak256": "0xa9fd4994702f7dc36369fbfb3f7a3ed767b36619bf28471d7d7098aabca62dab", + "urls": [ + "bzz-raw://f7eb78f54189a5ab0247264303eea0e576d9aa8a1ea3d81e3e4aefe1baef13a0", + "dweb:/ipfs/Qmf7DVjjGGRDC4UY1tzLztwG6pEsutWGxiZ2ve1czCE93S" ], "license": "MIT" }, @@ -3742,18 +3581,18 @@ "license": "MIT" }, "src/market/libraries/actions/Withdraw.sol": { - "keccak256": "0x7a742d3bababff2547f5e71d52feb7a6d93549beb896981a8e220952c02f52df", + "keccak256": "0x1c0692507acd9052c4831b4a78fd6a7d54b7ab9743bf49e170441abdd5694247", "urls": [ - "bzz-raw://53abc4a277560dd0688de69f0dc8aa6531ad4ec7c808d4592e656b214fd71f21", - "dweb:/ipfs/QmT61oye8uwqzSwnqK74PFkJu2kV63wHpJKSocH8yur3eR" + "bzz-raw://6c1de43235c6ac35a2a752173ab67346feb750948d2091efd20053f051d7baa9", + "dweb:/ipfs/QmXtbxAzykvnBSRuDWSFYybL6V7pqGwhjCGhkKQhSeb59i" ], "license": "MIT" }, "src/market/token/NonTransferrableRebasingTokenVault.sol": { - "keccak256": "0x408c52f8e5ef7e79e1afcda1a42004a163e8856156ae859388c8b841349b9a55", + "keccak256": "0x9178cafae5e58ebdaa1121fc7548514fc2e2b847ff1b375e42a968bef415ab30", "urls": [ - "bzz-raw://dae3ad0b3f501a9788657b9a961a7ad8440c5cc78f62f581a6949a21166b5481", - "dweb:/ipfs/QmNurenVtRDWbmNHtb1QDzVNbB6sBZcN8LGcn2ayaCFBig" + "bzz-raw://c46fe4fccc7608958715b333f3ef8c3ec4a571c30ddb4650ac4651ff55357745", + "dweb:/ipfs/QmUBKJwNUacfmRG6p6PFYQssKf6gCCt7dvmqDbnL3KsT7g" ], "license": "MIT" }, @@ -3765,11 +3604,19 @@ ], "license": "MIT" }, + "src/market/token/adapters/IAaveAdapter.sol": { + "keccak256": "0xd88333fa5a565a78d2fbdf408f2ff89b69f900bd13ae84e1b102f1a1527c1777", + "urls": [ + "bzz-raw://1890c9632e9fa607c74524da6049080fe42bde8fdc6117136e12e2277dbac02e", + "dweb:/ipfs/QmSD6udpnnRsXoqk6yHxjKpDxiQgmoxQTj3CoXrP64bxKd" + ], + "license": "MIT" + }, "src/market/token/adapters/IAdapter.sol": { - "keccak256": "0xb953b0e5e09d775cf4b6ef970131883c052510a156d0b6a7f6550aa7a3344d7e", + "keccak256": "0x579f476cae67f70982f6d158f90490ccacb37c88d4c9e4318ccee9be0d3ff692", "urls": [ - "bzz-raw://62272b20b8f5d9fe2d7a55e5774835cede834df2d4ee8b3456d35e54547f0fb8", - "dweb:/ipfs/Qmcf9RPBiArogFRFqZjt7jvtBQCuRGDPyQMakVDGPSDHF9" + "bzz-raw://80e9fc7d1fa0dfa85846e80a7ba766c68a39310c604d326f547f9278c2943574", + "dweb:/ipfs/QmS1fNU7hrH21a2ZusfxMqaQvtzAgbdJkcbfw8ps3QB5oQ" ], "license": "MIT" }, @@ -3816,5 +3663,5 @@ }, "version": 1 }, - "id": 259 + "id": 256 } diff --git a/src/v1.8/abi/Errors.json b/src/v1.8/abi/Errors.json index 3d1d183..f9badb6 100644 --- a/src/v1.8/abi/Errors.json +++ b/src/v1.8/abi/Errors.json @@ -301,6 +301,52 @@ { "name": "account", "type": "address", "internalType": "address" } ] }, + { + "type": "error", + "name": "INVALID_OFFER_CONFIGS", + "inputs": [ + { + "name": "minTenorBorrowOffer", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxTenorBorrowOffer", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "minAPRBorrowOffer", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxAPRBorrowOffer", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "minTenorLoanOffer", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxTenorLoanOffer", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "minAPRLoanOffer", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxAPRLoanOffer", + "type": "uint256", + "internalType": "uint256" + } + ] + }, { "type": "error", "name": "INVALID_POSITION_ID", @@ -426,24 +472,6 @@ { "name": "loanStatus", "type": "uint8", "internalType": "uint8" } ] }, - { - "type": "error", - "name": "MISMATCHED_CURVES", - "inputs": [ - { "name": "account", "type": "address", "internalType": "address" }, - { "name": "tenor", "type": "uint256", "internalType": "uint256" }, - { - "name": "loanOfferAPR", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "borrowOfferAPR", - "type": "uint256", - "internalType": "uint256" - } - ] - }, { "type": "error", "name": "MUST_IMPROVE_COLLATERAL_RATIO", @@ -501,6 +529,13 @@ { "name": "maxDueDate", "type": "uint256", "internalType": "uint256" } ] }, + { + "type": "error", + "name": "PAUSED_MARKET", + "inputs": [ + { "name": "market", "type": "address", "internalType": "address" } + ] + }, { "type": "error", "name": "REINITIALIZE_ALL_CLAIMS_PRESERVED", @@ -618,17 +653,17 @@ } ], "bytecode": { - "object": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220127d32d035909a646c8c249fe2412826b25534e6763892d00a60e6b54883acd564736f6c63430008170033", - "sourceMap": "165:4984:295:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;165:4984:295;;;;;;;;;;;;;;;;;", + "object": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220bac3c3a566b687daff2d02589528007584e3641e0cf61c439ebd7c851744124764736f6c63430008170033", + "sourceMap": "165:5237:299:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;165:5237:299;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220127d32d035909a646c8c249fe2412826b25534e6763892d00a60e6b54883acd564736f6c63430008170033", - "sourceMap": "165:4984:295:-:0;;;;;;;;", + "object": "0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220bac3c3a566b687daff2d02589528007584e3641e0cf61c439ebd7c851744124764736f6c63430008170033", + "sourceMap": "165:5237:299:-:0;;;;;;;;", "linkReferences": {} }, "methodIdentifiers": {}, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"}],\"name\":\"APR_GREATER_THAN_MAX_APR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"}],\"name\":\"APR_LOWER_THAN_MIN_APR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_LENGTHS_MISMATCH\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"}],\"name\":\"BORROWER_IS_NOT_LENDER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowTokenIncrease\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtTokenDecrease\",\"type\":\"uint256\"}],\"name\":\"BORROW_TOKEN_INCREASE_EXCEEDS_DEBT_TOKEN_DECREASE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compensator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"COMPENSATOR_IS_NOT_BORROWER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"}],\"name\":\"CREDIT_LOWER_THAN_MINIMUM_CREDIT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"}],\"name\":\"CREDIT_LOWER_THAN_MINIMUM_CREDIT_OPENING\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"name\":\"CREDIT_NOT_FOR_SALE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"CREDIT_POSITION_ALREADY_CLAIMED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"loanStatus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"borrowerCR\",\"type\":\"uint256\"}],\"name\":\"CREDIT_POSITION_NOT_TRANSFERRABLE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskCollateralRatio\",\"type\":\"uint256\"}],\"name\":\"CR_BELOW_OPENING_LIMIT_BORROW_CR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dueDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"}],\"name\":\"DUE_DATE_GREATER_THAN_MAX_DUE_DATE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dueDate1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dueDate2\",\"type\":\"uint256\"}],\"name\":\"DUE_DATE_NOT_COMPATIBLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD_NOT_OVER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"action\",\"type\":\"uint8\"}],\"name\":\"INVALID_ACTION\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"}],\"name\":\"INVALID_ACTIONS_BITMAP\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"adapter\",\"type\":\"uint256\"}],\"name\":\"INVALID_ADAPTER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"INVALID_AMOUNT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"}],\"name\":\"INVALID_APR_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_AVERAGE_BLOCK_TIME\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_BORROWER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"INVALID_BORROW_OFFER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"name\":\"INVALID_COLLATERAL_PERCENTAGE_PREMIUM\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"}],\"name\":\"INVALID_COLLATERAL_RATIO\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"name\":\"INVALID_CREDIT_POSITION_ID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"name\":\"INVALID_DEBT_POSITION_ID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"name\":\"INVALID_DECIMALS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"INVALID_KEY\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_LENDER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"crOpening\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crLiquidation\",\"type\":\"uint256\"}],\"name\":\"INVALID_LIQUIDATION_COLLATERAL_RATIO\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"}],\"name\":\"INVALID_LOAN_OFFER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"INVALID_MARKET\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"INVALID_MAXIMUM_TENOR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"INVALID_MSG_VALUE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_OFFER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"INVALID_POSITION_ID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"price\",\"type\":\"int256\"}],\"name\":\"INVALID_PRICE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"INVALID_STALE_PRICE_INTERVAL\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"INVALID_TENOR_RANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"INVALID_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_TWAP_WINDOW\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"INVALID_VAULT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"INVERTED_CURVES\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidatorProfitCollateralToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCollateralProfit\",\"type\":\"uint256\"}],\"name\":\"LIQUIDATE_PROFIT_BELOW_MINIMUM_COLLATERAL_PROFIT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"liquidator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"}],\"name\":\"LIQUIDATOR_IS_NOT_LENDER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"LOAN_ALREADY_REPAID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"LOAN_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"loanStatus\",\"type\":\"uint8\"}],\"name\":\"LOAN_NOT_LIQUIDATABLE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"LOAN_NOT_REPAID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"loanStatus\",\"type\":\"uint8\"}],\"name\":\"LOAN_NOT_SELF_LIQUIDATABLE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"loanOfferAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowOfferAPR\",\"type\":\"uint256\"}],\"name\":\"MISMATCHED_CURVES\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"crBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crAfter\",\"type\":\"uint256\"}],\"name\":\"MUST_IMPROVE_COLLATERAL_RATIO\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NOT_ENOUGH_BORROW_ATOKEN_BALANCE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NOT_ENOUGH_CASH\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NOT_ENOUGH_CREDIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_SUPPORTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_ARRAY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_MAX_DUE_DATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_OFFER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_STALE_PRICE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_STALE_RATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_TENOR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"PAST_DEADLINE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"}],\"name\":\"PAST_MAX_DUE_DATE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newScaledTotalSupplyAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newScaledTotalSupplyBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldScaledTotalSupply\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_ALL_CLAIMS_PRESERVED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTotalSupplyAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newTotalSupplyBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aTokenBalance\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_INSOLVENT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_MIGRATION_EXPECTED_IN_ONE_TRANSACTION\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_PER_USER_CHECK\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_PER_USER_CHECK_DELTA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SEQUENCER_DOWN\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"name\":\"STALE_PRICE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"updatedAt\",\"type\":\"uint128\"}],\"name\":\"STALE_RATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TENORS_NOT_STRICTLY_INCREASING\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"TENOR_OUT_OF_RANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"action\",\"type\":\"uint8\"}],\"name\":\"UNAUTHORIZED_ACTION\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"VALUE_GREATER_THAN_MAX\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Size (https://size.credit/)\",\"custom:security-contact\":\"security@size.credit\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Errors\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/market/libraries/Errors.sol\":\"Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solady/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/=lib/properties/lib/solmate/src/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"src/market/libraries/Errors.sol\":{\"keccak256\":\"0x7abdde1b276a117d81a1620afa3480be06bf144e072818e693969cf3d2a14baa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0be4d6bed4cb5478cf73bda6c1fddc9ab6b77f3c34835deb3f1bdcefc3a882\",\"dweb:/ipfs/QmX7gNjXw5ZXCWkTPkHnqfA8XPa4m1mrQvJcsRumKtkbvx\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"}],\"name\":\"APR_GREATER_THAN_MAX_APR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"apr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"}],\"name\":\"APR_LOWER_THAN_MIN_APR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_LENGTHS_MISMATCH\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"}],\"name\":\"BORROWER_IS_NOT_LENDER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowTokenIncrease\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtTokenDecrease\",\"type\":\"uint256\"}],\"name\":\"BORROW_TOKEN_INCREASE_EXCEEDS_DEBT_TOKEN_DECREASE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compensator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"COMPENSATOR_IS_NOT_BORROWER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"}],\"name\":\"CREDIT_LOWER_THAN_MINIMUM_CREDIT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"}],\"name\":\"CREDIT_LOWER_THAN_MINIMUM_CREDIT_OPENING\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"name\":\"CREDIT_NOT_FOR_SALE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"CREDIT_POSITION_ALREADY_CLAIMED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"loanStatus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"borrowerCR\",\"type\":\"uint256\"}],\"name\":\"CREDIT_POSITION_NOT_TRANSFERRABLE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskCollateralRatio\",\"type\":\"uint256\"}],\"name\":\"CR_BELOW_OPENING_LIMIT_BORROW_CR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dueDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"}],\"name\":\"DUE_DATE_GREATER_THAN_MAX_DUE_DATE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dueDate1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dueDate2\",\"type\":\"uint256\"}],\"name\":\"DUE_DATE_NOT_COMPATIBLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD_NOT_OVER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"action\",\"type\":\"uint8\"}],\"name\":\"INVALID_ACTION\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"}],\"name\":\"INVALID_ACTIONS_BITMAP\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"adapter\",\"type\":\"uint256\"}],\"name\":\"INVALID_ADAPTER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"INVALID_AMOUNT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"}],\"name\":\"INVALID_APR_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_AVERAGE_BLOCK_TIME\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_BORROWER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"name\":\"INVALID_BORROW_OFFER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"name\":\"INVALID_COLLATERAL_PERCENTAGE_PREMIUM\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"}],\"name\":\"INVALID_COLLATERAL_RATIO\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"name\":\"INVALID_CREDIT_POSITION_ID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"name\":\"INVALID_DEBT_POSITION_ID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"name\":\"INVALID_DECIMALS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"INVALID_KEY\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_LENDER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"crOpening\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crLiquidation\",\"type\":\"uint256\"}],\"name\":\"INVALID_LIQUIDATION_COLLATERAL_RATIO\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"}],\"name\":\"INVALID_LOAN_OFFER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"INVALID_MARKET\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"INVALID_MAXIMUM_TENOR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"INVALID_MSG_VALUE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_OFFER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minTenorBorrowOffer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenorBorrowOffer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPRBorrowOffer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPRBorrowOffer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenorLoanOffer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenorLoanOffer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPRLoanOffer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPRLoanOffer\",\"type\":\"uint256\"}],\"name\":\"INVALID_OFFER_CONFIGS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"INVALID_POSITION_ID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"price\",\"type\":\"int256\"}],\"name\":\"INVALID_PRICE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"INVALID_STALE_PRICE_INTERVAL\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"INVALID_TENOR_RANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"INVALID_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_TWAP_WINDOW\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"INVALID_VAULT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"INVERTED_CURVES\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidatorProfitCollateralToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCollateralProfit\",\"type\":\"uint256\"}],\"name\":\"LIQUIDATE_PROFIT_BELOW_MINIMUM_COLLATERAL_PROFIT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"liquidator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"}],\"name\":\"LIQUIDATOR_IS_NOT_LENDER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"LOAN_ALREADY_REPAID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"LOAN_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"loanStatus\",\"type\":\"uint8\"}],\"name\":\"LOAN_NOT_LIQUIDATABLE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"positionId\",\"type\":\"uint256\"}],\"name\":\"LOAN_NOT_REPAID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cr\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"loanStatus\",\"type\":\"uint8\"}],\"name\":\"LOAN_NOT_SELF_LIQUIDATABLE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"crBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crAfter\",\"type\":\"uint256\"}],\"name\":\"MUST_IMPROVE_COLLATERAL_RATIO\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NOT_ENOUGH_BORROW_ATOKEN_BALANCE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NOT_ENOUGH_CASH\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"NOT_ENOUGH_CREDIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_SUPPORTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_ARRAY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_MAX_DUE_DATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_OFFER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_STALE_PRICE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_STALE_RATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_TENOR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"PAST_DEADLINE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"}],\"name\":\"PAST_MAX_DUE_DATE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"PAUSED_MARKET\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newScaledTotalSupplyAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newScaledTotalSupplyBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldScaledTotalSupply\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_ALL_CLAIMS_PRESERVED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTotalSupplyAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newTotalSupplyBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aTokenBalance\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_INSOLVENT\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_MIGRATION_EXPECTED_IN_ONE_TRANSACTION\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_PER_USER_CHECK\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"REINITIALIZE_PER_USER_CHECK_DELTA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SEQUENCER_DOWN\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"name\":\"STALE_PRICE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"updatedAt\",\"type\":\"uint128\"}],\"name\":\"STALE_RATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TENORS_NOT_STRICTLY_INCREASING\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"name\":\"TENOR_OUT_OF_RANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"action\",\"type\":\"uint8\"}],\"name\":\"UNAUTHORIZED_ACTION\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"VALUE_GREATER_THAN_MAX\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Size (https://size.credit/)\",\"custom:security-contact\":\"security@size.credit\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Errors\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/market/libraries/Errors.sol\":\"Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@solmate/=lib/solmate/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":halmos-helpers-lib/=lib/halmos-helpers-lib/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/auth/=lib/solmate/src/auth/\",\":solmate/mixins/=lib/solmate/src/tokens/\",\":solmate/tokens/=lib/solmate/src/tokens/\",\":solmate/utils/=lib/solmate/src/utils/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"src/market/libraries/Errors.sol\":{\"keccak256\":\"0xed73df3f39ba612c526ea09234b730cfdfa5ed399b279bb738fbfd5696b38bd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c0c78ee291a63f618a99ef99dfd2e6d2ff973f38a2b6fb92001a0a9c6329702\",\"dweb:/ipfs/QmQfuhKVMKebzmFYAN6EEDCWr7PpG884Xbqc6VL5XwVmuM\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.23+commit.f704f362" }, "language": "Solidity", @@ -973,6 +1008,52 @@ "type": "error", "name": "INVALID_OFFER" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "minTenorBorrowOffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTenorBorrowOffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAPRBorrowOffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxAPRBorrowOffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTenorLoanOffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTenorLoanOffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAPRLoanOffer", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxAPRLoanOffer", + "type": "uint256" + } + ], + "type": "error", + "name": "INVALID_OFFER_CONFIGS" + }, { "inputs": [ { @@ -1126,24 +1207,6 @@ "type": "error", "name": "LOAN_NOT_SELF_LIQUIDATABLE" }, - { - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "tenor", "type": "uint256" }, - { - "internalType": "uint256", - "name": "loanOfferAPR", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "borrowOfferAPR", - "type": "uint256" - } - ], - "type": "error", - "name": "MISMATCHED_CURVES" - }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, @@ -1209,6 +1272,13 @@ "type": "error", "name": "PAST_MAX_DUE_DATE" }, + { + "inputs": [ + { "internalType": "address", "name": "market", "type": "address" } + ], + "type": "error", + "name": "PAUSED_MARKET" + }, { "inputs": [ { @@ -1379,6 +1449,7 @@ "@script/=script/", "@solady/=lib/solady/", "@solidity-http/=lib/solidity-http/src/", + "@solmate/=lib/solmate/", "@src/=src/", "@tenderly-utils/=lib/tenderly-utils/src/", "@test/=test/", @@ -1389,10 +1460,11 @@ "aave-v3-core/=lib/aave-v3-core/", "chainlink/=lib/chainlink/contracts/", "chimera/=lib/chimera/src/", - "ds-test/=lib/solady/lib/ds-test/src/", + "ds-test/=lib/solmate/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/halmos-cheatcodes/src/", + "halmos-helpers-lib/=lib/halmos-helpers-lib/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/", @@ -1402,7 +1474,10 @@ "solady/=lib/solady/", "solidity-http/=lib/solidity-http/src/", "solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/", - "solmate/=lib/properties/lib/solmate/src/", + "solmate/auth/=lib/solmate/src/auth/", + "solmate/mixins/=lib/solmate/src/tokens/", + "solmate/tokens/=lib/solmate/src/tokens/", + "solmate/utils/=lib/solmate/src/utils/", "tenderly-utils/=lib/tenderly-utils/src/", "v3-core/=lib/v3-core/contracts/", "v3-periphery/=lib/v3-periphery/contracts/" @@ -1415,15 +1490,15 @@ }, "sources": { "src/market/libraries/Errors.sol": { - "keccak256": "0x7abdde1b276a117d81a1620afa3480be06bf144e072818e693969cf3d2a14baa", + "keccak256": "0xed73df3f39ba612c526ea09234b730cfdfa5ed399b279bb738fbfd5696b38bd0", "urls": [ - "bzz-raw://af0be4d6bed4cb5478cf73bda6c1fddc9ab6b77f3c34835deb3f1bdcefc3a882", - "dweb:/ipfs/QmX7gNjXw5ZXCWkTPkHnqfA8XPa4m1mrQvJcsRumKtkbvx" + "bzz-raw://2c0c78ee291a63f618a99ef99dfd2e6d2ff973f38a2b6fb92001a0a9c6329702", + "dweb:/ipfs/QmQfuhKVMKebzmFYAN6EEDCWr7PpG884Xbqc6VL5XwVmuM" ], "license": "MIT" } }, "version": 1 }, - "id": 295 + "id": 299 } diff --git a/src/v1.8/abi/IERC1155Errors.json b/src/v1.8/abi/IERC1155Errors.json new file mode 100644 index 0000000..da8d2e1 --- /dev/null +++ b/src/v1.8/abi/IERC1155Errors.json @@ -0,0 +1,206 @@ +{ + "abi": [ + { + "type": "error", + "name": "ERC1155InsufficientBalance", + "inputs": [ + { "name": "sender", "type": "address", "internalType": "address" }, + { "name": "balance", "type": "uint256", "internalType": "uint256" }, + { "name": "needed", "type": "uint256", "internalType": "uint256" }, + { "name": "tokenId", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "ERC1155InvalidApprover", + "inputs": [ + { "name": "approver", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC1155InvalidArrayLength", + "inputs": [ + { "name": "idsLength", "type": "uint256", "internalType": "uint256" }, + { "name": "valuesLength", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "ERC1155InvalidOperator", + "inputs": [ + { "name": "operator", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC1155InvalidReceiver", + "inputs": [ + { "name": "receiver", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC1155InvalidSender", + "inputs": [ + { "name": "sender", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC1155MissingApprovalForAll", + "inputs": [ + { "name": "operator", "type": "address", "internalType": "address" }, + { "name": "owner", "type": "address", "internalType": "address" } + ] + } + ], + "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, + "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, + "methodIdentifiers": {}, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@solmate/=lib/solmate/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":halmos-helpers-lib/=lib/halmos-helpers-lib/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/auth/=lib/solmate/src/auth/\",\":solmate/mixins/=lib/solmate/src/tokens/\",\":solmate/tokens/=lib/solmate/src/tokens/\",\":solmate/utils/=lib/solmate/src/utils/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}", + "metadata": { + "compiler": { "version": "0.8.23+commit.f704f362" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "balance", "type": "uint256" }, + { "internalType": "uint256", "name": "needed", "type": "uint256" }, + { "internalType": "uint256", "name": "tokenId", "type": "uint256" } + ], + "type": "error", + "name": "ERC1155InsufficientBalance" + }, + { + "inputs": [ + { "internalType": "address", "name": "approver", "type": "address" } + ], + "type": "error", + "name": "ERC1155InvalidApprover" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "type": "error", + "name": "ERC1155InvalidArrayLength" + }, + { + "inputs": [ + { "internalType": "address", "name": "operator", "type": "address" } + ], + "type": "error", + "name": "ERC1155InvalidOperator" + }, + { + "inputs": [ + { "internalType": "address", "name": "receiver", "type": "address" } + ], + "type": "error", + "name": "ERC1155InvalidReceiver" + }, + { + "inputs": [ + { "internalType": "address", "name": "sender", "type": "address" } + ], + "type": "error", + "name": "ERC1155InvalidSender" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { "internalType": "address", "name": "owner", "type": "address" } + ], + "type": "error", + "name": "ERC1155MissingApprovalForAll" + } + ], + "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "remappings": [ + "@ERC-7540-Reference/=lib/ERC-7540-Reference/", + "@aave/=lib/aave-v3-core/contracts/", + "@chainlink/=lib/chainlink/", + "@chimera/=lib/chimera/src/", + "@crytic/properties/=lib/properties/", + "@deprecated/=deprecated/", + "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", + "@pendle/=lib/pendle-core-v2-public/", + "@safe-utils/=lib/safe-utils/src/", + "@script/=script/", + "@solady/=lib/solady/", + "@solidity-http/=lib/solidity-http/src/", + "@solmate/=lib/solmate/", + "@src/=src/", + "@tenderly-utils/=lib/tenderly-utils/src/", + "@test/=test/", + "@uniswap/v3-core/=lib/v3-core/", + "@uniswap/v3-periphery/=lib/v3-periphery/", + "ERC-7540-Reference/=lib/ERC-7540-Reference/src/", + "ERC4626/=lib/properties/lib/ERC4626/contracts/", + "aave-v3-core/=lib/aave-v3-core/", + "chainlink/=lib/chainlink/contracts/", + "chimera/=lib/chimera/src/", + "ds-test/=lib/solmate/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "halmos-cheatcodes/=lib/halmos-cheatcodes/src/", + "halmos-helpers-lib/=lib/halmos-helpers-lib/src/", + "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/", + "properties/=lib/properties/contracts/", + "safe-smart-account/=lib/safe-utils/lib/safe-smart-account/", + "safe-utils/=lib/safe-utils/src/", + "solady/=lib/solady/", + "solidity-http/=lib/solidity-http/src/", + "solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/", + "solmate/auth/=lib/solmate/src/auth/", + "solmate/mixins/=lib/solmate/src/tokens/", + "solmate/tokens/=lib/solmate/src/tokens/", + "solmate/utils/=lib/solmate/src/utils/", + "tenderly-utils/=lib/tenderly-utils/src/", + "v3-core/=lib/v3-core/contracts/", + "v3-periphery/=lib/v3-periphery/contracts/" + ], + "optimizer": { "enabled": true, "runs": 200 }, + "metadata": { "bytecodeHash": "ipfs" }, + "compilationTarget": { + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol": "IERC1155Errors" + }, + "evmVersion": "shanghai", + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol": { + "keccak256": "0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b", + "urls": [ + "bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b", + "dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "id": 110 +} diff --git a/src/v1.8/abi/IERC20Errors.json b/src/v1.8/abi/IERC20Errors.json new file mode 100644 index 0000000..126dbfe --- /dev/null +++ b/src/v1.8/abi/IERC20Errors.json @@ -0,0 +1,182 @@ +{ + "abi": [ + { + "type": "error", + "name": "ERC20InsufficientAllowance", + "inputs": [ + { "name": "spender", "type": "address", "internalType": "address" }, + { "name": "allowance", "type": "uint256", "internalType": "uint256" }, + { "name": "needed", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "ERC20InsufficientBalance", + "inputs": [ + { "name": "sender", "type": "address", "internalType": "address" }, + { "name": "balance", "type": "uint256", "internalType": "uint256" }, + { "name": "needed", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "ERC20InvalidApprover", + "inputs": [ + { "name": "approver", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC20InvalidReceiver", + "inputs": [ + { "name": "receiver", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC20InvalidSender", + "inputs": [ + { "name": "sender", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC20InvalidSpender", + "inputs": [ + { "name": "spender", "type": "address", "internalType": "address" } + ] + } + ], + "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, + "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, + "methodIdentifiers": {}, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@solmate/=lib/solmate/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":halmos-helpers-lib/=lib/halmos-helpers-lib/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/auth/=lib/solmate/src/auth/\",\":solmate/mixins/=lib/solmate/src/tokens/\",\":solmate/tokens/=lib/solmate/src/tokens/\",\":solmate/utils/=lib/solmate/src/utils/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}", + "metadata": { + "compiler": { "version": "0.8.23+commit.f704f362" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { "internalType": "address", "name": "spender", "type": "address" }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { "internalType": "uint256", "name": "needed", "type": "uint256" } + ], + "type": "error", + "name": "ERC20InsufficientAllowance" + }, + { + "inputs": [ + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "balance", "type": "uint256" }, + { "internalType": "uint256", "name": "needed", "type": "uint256" } + ], + "type": "error", + "name": "ERC20InsufficientBalance" + }, + { + "inputs": [ + { "internalType": "address", "name": "approver", "type": "address" } + ], + "type": "error", + "name": "ERC20InvalidApprover" + }, + { + "inputs": [ + { "internalType": "address", "name": "receiver", "type": "address" } + ], + "type": "error", + "name": "ERC20InvalidReceiver" + }, + { + "inputs": [ + { "internalType": "address", "name": "sender", "type": "address" } + ], + "type": "error", + "name": "ERC20InvalidSender" + }, + { + "inputs": [ + { "internalType": "address", "name": "spender", "type": "address" } + ], + "type": "error", + "name": "ERC20InvalidSpender" + } + ], + "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "remappings": [ + "@ERC-7540-Reference/=lib/ERC-7540-Reference/", + "@aave/=lib/aave-v3-core/contracts/", + "@chainlink/=lib/chainlink/", + "@chimera/=lib/chimera/src/", + "@crytic/properties/=lib/properties/", + "@deprecated/=deprecated/", + "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", + "@pendle/=lib/pendle-core-v2-public/", + "@safe-utils/=lib/safe-utils/src/", + "@script/=script/", + "@solady/=lib/solady/", + "@solidity-http/=lib/solidity-http/src/", + "@solmate/=lib/solmate/", + "@src/=src/", + "@tenderly-utils/=lib/tenderly-utils/src/", + "@test/=test/", + "@uniswap/v3-core/=lib/v3-core/", + "@uniswap/v3-periphery/=lib/v3-periphery/", + "ERC-7540-Reference/=lib/ERC-7540-Reference/src/", + "ERC4626/=lib/properties/lib/ERC4626/contracts/", + "aave-v3-core/=lib/aave-v3-core/", + "chainlink/=lib/chainlink/contracts/", + "chimera/=lib/chimera/src/", + "ds-test/=lib/solmate/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "halmos-cheatcodes/=lib/halmos-cheatcodes/src/", + "halmos-helpers-lib/=lib/halmos-helpers-lib/src/", + "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/", + "properties/=lib/properties/contracts/", + "safe-smart-account/=lib/safe-utils/lib/safe-smart-account/", + "safe-utils/=lib/safe-utils/src/", + "solady/=lib/solady/", + "solidity-http/=lib/solidity-http/src/", + "solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/", + "solmate/auth/=lib/solmate/src/auth/", + "solmate/mixins/=lib/solmate/src/tokens/", + "solmate/tokens/=lib/solmate/src/tokens/", + "solmate/utils/=lib/solmate/src/utils/", + "tenderly-utils/=lib/tenderly-utils/src/", + "v3-core/=lib/v3-core/contracts/", + "v3-periphery/=lib/v3-periphery/contracts/" + ], + "optimizer": { "enabled": true, "runs": 200 }, + "metadata": { "bytecodeHash": "ipfs" }, + "compilationTarget": { + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol": "IERC20Errors" + }, + "evmVersion": "shanghai", + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol": { + "keccak256": "0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b", + "urls": [ + "bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b", + "dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "id": 110 +} diff --git a/src/v1.8/abi/IERC721Errors.json b/src/v1.8/abi/IERC721Errors.json new file mode 100644 index 0000000..3c6b930 --- /dev/null +++ b/src/v1.8/abi/IERC721Errors.json @@ -0,0 +1,208 @@ +{ + "abi": [ + { + "type": "error", + "name": "ERC721IncorrectOwner", + "inputs": [ + { "name": "sender", "type": "address", "internalType": "address" }, + { "name": "tokenId", "type": "uint256", "internalType": "uint256" }, + { "name": "owner", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC721InsufficientApproval", + "inputs": [ + { "name": "operator", "type": "address", "internalType": "address" }, + { "name": "tokenId", "type": "uint256", "internalType": "uint256" } + ] + }, + { + "type": "error", + "name": "ERC721InvalidApprover", + "inputs": [ + { "name": "approver", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC721InvalidOperator", + "inputs": [ + { "name": "operator", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC721InvalidOwner", + "inputs": [ + { "name": "owner", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC721InvalidReceiver", + "inputs": [ + { "name": "receiver", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC721InvalidSender", + "inputs": [ + { "name": "sender", "type": "address", "internalType": "address" } + ] + }, + { + "type": "error", + "name": "ERC721NonexistentToken", + "inputs": [ + { "name": "tokenId", "type": "uint256", "internalType": "uint256" } + ] + } + ], + "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, + "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, + "methodIdentifiers": {}, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@solmate/=lib/solmate/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":halmos-helpers-lib/=lib/halmos-helpers-lib/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/auth/=lib/solmate/src/auth/\",\":solmate/mixins/=lib/solmate/src/tokens/\",\":solmate/tokens/=lib/solmate/src/tokens/\",\":solmate/utils/=lib/solmate/src/utils/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}", + "metadata": { + "compiler": { "version": "0.8.23+commit.f704f362" }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { "internalType": "address", "name": "sender", "type": "address" }, + { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, + { "internalType": "address", "name": "owner", "type": "address" } + ], + "type": "error", + "name": "ERC721IncorrectOwner" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { "internalType": "uint256", "name": "tokenId", "type": "uint256" } + ], + "type": "error", + "name": "ERC721InsufficientApproval" + }, + { + "inputs": [ + { "internalType": "address", "name": "approver", "type": "address" } + ], + "type": "error", + "name": "ERC721InvalidApprover" + }, + { + "inputs": [ + { "internalType": "address", "name": "operator", "type": "address" } + ], + "type": "error", + "name": "ERC721InvalidOperator" + }, + { + "inputs": [ + { "internalType": "address", "name": "owner", "type": "address" } + ], + "type": "error", + "name": "ERC721InvalidOwner" + }, + { + "inputs": [ + { "internalType": "address", "name": "receiver", "type": "address" } + ], + "type": "error", + "name": "ERC721InvalidReceiver" + }, + { + "inputs": [ + { "internalType": "address", "name": "sender", "type": "address" } + ], + "type": "error", + "name": "ERC721InvalidSender" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "tokenId", "type": "uint256" } + ], + "type": "error", + "name": "ERC721NonexistentToken" + } + ], + "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, + "userdoc": { "kind": "user", "methods": {}, "version": 1 } + }, + "settings": { + "remappings": [ + "@ERC-7540-Reference/=lib/ERC-7540-Reference/", + "@aave/=lib/aave-v3-core/contracts/", + "@chainlink/=lib/chainlink/", + "@chimera/=lib/chimera/src/", + "@crytic/properties/=lib/properties/", + "@deprecated/=deprecated/", + "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", + "@pendle/=lib/pendle-core-v2-public/", + "@safe-utils/=lib/safe-utils/src/", + "@script/=script/", + "@solady/=lib/solady/", + "@solidity-http/=lib/solidity-http/src/", + "@solmate/=lib/solmate/", + "@src/=src/", + "@tenderly-utils/=lib/tenderly-utils/src/", + "@test/=test/", + "@uniswap/v3-core/=lib/v3-core/", + "@uniswap/v3-periphery/=lib/v3-periphery/", + "ERC-7540-Reference/=lib/ERC-7540-Reference/src/", + "ERC4626/=lib/properties/lib/ERC4626/contracts/", + "aave-v3-core/=lib/aave-v3-core/", + "chainlink/=lib/chainlink/contracts/", + "chimera/=lib/chimera/src/", + "ds-test/=lib/solmate/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "halmos-cheatcodes/=lib/halmos-cheatcodes/src/", + "halmos-helpers-lib/=lib/halmos-helpers-lib/src/", + "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/", + "properties/=lib/properties/contracts/", + "safe-smart-account/=lib/safe-utils/lib/safe-smart-account/", + "safe-utils/=lib/safe-utils/src/", + "solady/=lib/solady/", + "solidity-http/=lib/solidity-http/src/", + "solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/", + "solmate/auth/=lib/solmate/src/auth/", + "solmate/mixins/=lib/solmate/src/tokens/", + "solmate/tokens/=lib/solmate/src/tokens/", + "solmate/utils/=lib/solmate/src/utils/", + "tenderly-utils/=lib/tenderly-utils/src/", + "v3-core/=lib/v3-core/contracts/", + "v3-periphery/=lib/v3-periphery/contracts/" + ], + "optimizer": { "enabled": true, "runs": 200 }, + "metadata": { "bytecodeHash": "ipfs" }, + "compilationTarget": { + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol": "IERC721Errors" + }, + "evmVersion": "shanghai", + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol": { + "keccak256": "0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b", + "urls": [ + "bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b", + "dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "id": 110 +} diff --git a/src/v1.8/abi/Size.json b/src/v1.8/abi/Size.json index 13e44dd..83ba7b4 100644 --- a/src/v1.8/abi/Size.json +++ b/src/v1.8/abi/Size.json @@ -697,16 +697,6 @@ "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, - { - "type": "function", - "name": "getPositionsCount", - "inputs": [], - "outputs": [ - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "uint256", "internalType": "uint256" } - ], - "stateMutability": "view" - }, { "type": "function", "name": "getRoleAdmin", @@ -1148,13 +1138,18 @@ }, { "type": "function", - "name": "isDebtPositionLiquidatable", + "name": "isUserDefinedBorrowOfferNull", "inputs": [ - { - "name": "debtPositionId", - "type": "uint256", - "internalType": "uint256" - } + { "name": "user", "type": "address", "internalType": "address" } + ], + "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isUserDefinedLoanOfferNull", + "inputs": [ + { "name": "user", "type": "address", "internalType": "address" } ], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" @@ -1937,15 +1932,6 @@ "outputs": [], "stateMutability": "payable" }, - { - "type": "function", - "name": "setVariablePoolBorrowRate", - "inputs": [ - { "name": "borrowRate", "type": "uint128", "internalType": "uint128" } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, { "type": "function", "name": "setVault", @@ -2241,31 +2227,6 @@ ], "anonymous": false }, - { - "type": "event", - "name": "VariablePoolBorrowRateUpdated", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": true, - "internalType": "address" - }, - { - "name": "oldBorrowRate", - "type": "uint128", - "indexed": false, - "internalType": "uint128" - }, - { - "name": "newBorrowRate", - "type": "uint128", - "indexed": false, - "internalType": "uint128" - } - ], - "anonymous": false - }, { "type": "error", "name": "AccessControlBadConfirmation", "inputs": [] }, { "type": "error", @@ -2335,303 +2296,301 @@ } ], "bytecode": { - "object": "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051615f60620001005f395f81816139f201528181613a1b0152613b830152615f605ff3fe6080604052600436106103be575f3560e01c80636c2eb350116101f4578063ac9650d811610113578063d927acef116100a8578063f1bf35c311610078578063f1bf35c314610c28578063f45bf01c14610c47578063f54ae18b14610c5a578063fa823af514610c6d578063fd17174a14610c80575f80fd5b8063d927acef14610bd0578063e05001f514610be3578063e236052b14610bf6578063e5af06ce14610c09575f80fd5b8063ca40742c116100e3578063ca40742c14610b6c578063cb2e9bdc14610b8b578063ccd8d4d114610b9e578063d547741f14610bb1575f80fd5b8063ac9650d814610aa2578063ad3cb1cc14610ac2578063b5ec748714610af2578063c421a75914610b4d575f80fd5b80637f417c06116101895780638ea68d7e116101595780638ea68d7e14610a3157806391d1485414610a445780639ab8011514610a63578063a217fddf14610a8f575f80fd5b80637f417c06146109e4578063834dafb5146109f75780638456cb5914610a0a5780638e57277614610a1e575f80fd5b806376c1b82f116101c457806376c1b82f1461090f5780637a32376a1461093b5780637c90a6ca1461094e5780637dc0d1d0146109a3575f80fd5b80636c2eb350146107a557806373b683be146107b957806373d4a13a146107d857806375829a36146108fc575f80fd5b80632f2ff15d116102e05780634fd9a8a51161027557806353e043d41161024557806353e043d41461070e57806354fd4d50146107215780635c975abb146107565780635cbc51eb14610779575f80fd5b80634fd9a8a5146106c1578063510aeb39146106d457806352d1902d146106e7578063536b9c79146106fb575f80fd5b80633ae6d7c3116102b05780633ae6d7c3146106685780633f4ba83a1461067b5780634cbd882c1461068f5780634f1ef286146106ae575f80fd5b80632f2ff15d1461060457806336568abe146106235780633746f858146106425780633962a68614610655575f80fd5b80631970e5ea11610356578063248a9ca311610326578063248a9ca3146105a05780632b4c9a20146105bf5780632b59bd99146105d25780632e106f21146105f1575f80fd5b80631970e5ea146104d55780631ca3b0cb146104f45780631e5eb1d01461051d5780631ff75b0b14610581575f80fd5b806304c842221161039157806304c84222146104565780630cf8542f146104825780630d37ab0014610495578063134f3f96146104c2575f80fd5b806301ffc9a7146103c257806302088c51146103f657806302f2855a146104225780630317b9df14610437575b5f80fd5b3480156103cd575f80fd5b506103e16103dc3660046142c8565b610c93565b60405190151581526020015b60405180910390f35b348015610401575f80fd5b506104156104103660046144c8565b610cc9565b6040516103ed9190614511565b610435610430366004614586565b610d4a565b005b348015610442575f80fd5b506104356104513660046145b0565b610e3d565b348015610461575f80fd5b506104756104703660046145e1565b610f41565b6040516103ed91906145fc565b610435610490366004614586565b610fc8565b3480156104a0575f80fd5b506104b46104af366004614635565b610ff5565b6040519081526020016103ed565b6104356104d0366004614761565b611008565b3480156104e0575f80fd5b506104b46104ef3660046147df565b6110b6565b3480156104ff575f80fd5b506105086110c1565b604080519283526020830191909152016103ed565b348015610528575f80fd5b506105316110f4565b6040516103ed9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201516001600160a01b03169181019190915260c00190565b34801561058c575f80fd5b506104b461059b3660046147f6565b6111a6565b3480156105ab575f80fd5b506104b46105ba3660046147df565b611249565b6104356105cd366004614586565b611269565b3480156105dd575f80fd5b506104b46105ec366004614635565b611296565b6104356105ff36600461483b565b6112a2565b34801561060f575f80fd5b5061043561061e366004614871565b6112c8565b34801561062e575f80fd5b5061043561063d366004614871565b6112ea565b6104356106503660046145b0565b611322565b6104356106633660046148f4565b611348565b610435610676366004614947565b611493565b348015610686575f80fd5b506104356116cf565b34801561069a575f80fd5b506104356106a9366004614985565b611728565b6104356106bc3660046149ab565b611809565b6104356106cf366004614bb6565b611828565b6104356106e2366004614be7565b6118d6565b3480156106f2575f80fd5b506104b4611903565b610435610709366004614c40565b61191e565b61043561071c366004614bb6565b611a17565b34801561072c575f80fd5b506040805180820190915260048152630ec625c760e31b60208201525b6040516103ed9190614cde565b348015610761575f80fd5b505f80516020615eeb8339815191525460ff166103e1565b348015610784575f80fd5b506107986107933660046145e1565b611ac5565b6040516103ed9190614dbe565b3480156107b0575f80fd5b50610435611f08565b3480156107c4575f80fd5b506104b46107d33660046147f6565b611fd8565b3480156107e3575f80fd5b5061088b60408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152506040805161010081018252601154815260125460208201526014546001600160a01b03908116928201929092526015548216606082015260165482166080820152601a54821660a0820152601854821660c082015260195490911660e082015290565b604080518251815260208084015190820152828201516001600160a01b039081169282019290925260608084015183169082015260808084015183169082015260a08084015183169082015260c08084015183169082015260e09283015190911691810191909152610100016103ed565b61043561090a366004614e95565b612037565b34801561091a575f80fd5b5061092e6109293660046147df565b612130565b6040516103ed9190614ec7565b610435610949366004614f55565b6121f6565b348015610959575f80fd5b506109626122a4565b6040516103ed91905f60a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156109ae575f80fd5b506109b7612342565b6040805182516001600160a01b031681526020928301516001600160401b031692810192909252016103ed565b6104356109f2366004614be7565b6123c5565b610435610a053660046148f4565b612471565b348015610a15575f80fd5b506104356125a4565b610435610a2c366004614586565b6125fd565b610435610a3f3660046144c8565b61262a565b348015610a4f575f80fd5b506103e1610a5e366004614871565b61265f565b348015610a6e575f80fd5b50610a82610a7d3660046144c8565b612695565b6040516103ed9190614f89565b348015610a9a575f80fd5b506104b45f81565b610ab5610ab0366004614fd5565b612716565b6040516103ed9190615043565b348015610acd575f80fd5b50610749604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610afd575f80fd5b50610b11610b0c3660046147df565b61272b565b6040516103ed919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b348015610b58575f80fd5b50610475610b673660046145e1565b612811565b348015610b77575f80fd5b506104b4610b863660046145e1565b612898565b610435610b993660046150a5565b61291b565b610435610bac3660046145b0565b612948565b348015610bbc575f80fd5b50610435610bcb366004614871565b61296e565b610508610bde3660046150b6565b61298a565b6104b4610bf1366004614586565b612bd5565b610435610c043660046150c6565b612d43565b348015610c14575f80fd5b506103e1610c233660046147df565b612d77565b348015610c33575f80fd5b50610435610c423660046150e7565b612df2565b610435610c5536600461516b565b61306a565b610435610c683660046151f8565b61311d565b610435610c7b3660046151f8565b6131cb565b610435610c8e36600461516b565b613279565b5f6001600160e01b03198216637965db0b60e01b1480610cc357506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cd1614175565b604051631c81982560e11b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__90633903304a90610d0a905f908690600401615281565b61014060405180830381865af4158015610d26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc391906152ec565b610d526132ad565b610d5a6132e4565b604051635fed4de960e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__90635fed4de990610d93905f908590600401615381565b5f6040518083038186803b158015610da9575f80fd5b505af4158015610dbb573d5f803e3d5ffd5b505060405163d96aec4360e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__925063d96aec439150610df8905f908590600401615381565b5f6040518083038186803b158015610e0e575f80fd5b505af4158015610e20573d5f803e3d5ffd5b50505050610e3a60015f80516020615f0b83398151915255565b50565b5f610e488133613329565b610e735760405163e2517d3f60e01b8152336004820152602481018290526044015b60405180910390fd5b60405163e57980dd60e01b815273__$72c16261390208f563094e6a4fc9f74031$__9063e57980dd90610eac905f9086906004016153c3565b5f6040518083038186803b158015610ec2575f80fd5b505af4158015610ed4573d5f803e3d5ffd5b5050604051634752b3b360e01b815273__$72c16261390208f563094e6a4fc9f74031$__9250634752b3b39150610f11905f9086906004016153c3565b5f6040518083038186803b158015610f27575f80fd5b505af4158015610f39573d5f803e3d5ffd5b505050505050565b610f6e6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526001820154815260028201549281019290925260038101549282019290925260048201546060820152600590910154608082015290565b610e3a604051806040016040528083803603810190610fe79190615447565b8152336020909101526131cb565b5f6110018184846133d2565b9392505050565b6110106132ad565b6110186132e4565b6040516333d4ade560e01b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__906333d4ade590611051905f908590600401615461565b5f6040518083038186803b158015611067575f80fd5b505af4158015611079573d5f803e3d5ffd5b505060405163178bcac760e11b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__9250632f17958e9150610df8905f908590600401615461565b5f610cc38183613520565b6011545f9081906110d39082906154e5565b6110df60025f196154f8565b6012546110ec91906154e5565b915091509091565b6111306040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681525090565b6040516386617e7760e01b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__906386617e779060240160c060405180830381865af415801561117d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a19190615517565b905090565b60405163897bce1f60e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__9063897bce1f9060a4015b602060405180830381865af415801561121c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112409190615575565b95945050505050565b5f9081525f80516020615ecb833981519152602052604090206001015490565b610e3a6040518060400160405280838036038101906112889190615447565b81523360209091015261311d565b5f611001818484613720565b610e3a6040518060400160405280836112ba9061558c565b815233602090910152611008565b6112d182611249565b6112da81613864565b6112e4838361386e565b50505050565b6001600160a01b03811633146113135760405163334bd91960e11b815260040160405180910390fd5b61131d828261390f565b505050565b610e3a60405180604001604052808361133a90615597565b815233602090910152611a17565b6113506132ad565b6113586132e4565b60405163160b9e6b60e31b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063b05cf35890611391905f9085906004016155d3565b5f6040518083038186803b1580156113a7575f80fd5b505af41580156113b9573d5f803e3d5ffd5b5050604051639f46aa4160e01b815273__$c58e2605104bb31274ad8c04841b6a7550$__9250639f46aa4191506113f6905f9085906004016155d3565b5f6040518083038186803b15801561140c575f80fd5b505af415801561141e573d5f803e3d5ffd5b505050505f19815f0151602001510361147d5760208101516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610df8565b610e3a60015f80516020615f0b83398151915255565b61149b6132ad565b6114a36132e4565b602081015160405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af4158015611507573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152b9190615575565b60405163f9c417bd60e01b815290915073__$7fa168b5d238863382c2bf886894022425$__9063f9c417bd90611567905f9087906004016155e8565b5f6040518083038186803b15801561157d575f80fd5b505af415801561158f573d5f803e3d5ffd5b5050604051634971bf9960e01b815273__$7fa168b5d238863382c2bf886894022425$__9250634971bf9991506115cc905f9087906004016155e8565b5f6040518083038186803b1580156115e2575f80fd5b505af41580156115f4573d5f803e3d5ffd5b505060405163046dbd1360e11b81525f600482018190526001600160a01b0386166024830152925073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__91506308db7a2690604401602060405180830381865af4158015611657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167b9190615575565b90508181116116b65760405163625a84dd60e01b81526001600160a01b03841660048201526024810183905260448101829052606401610e6a565b505050610e3a60015f80516020615f0b83398151915255565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6116fa8133613329565b6117205760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b610e3a613988565b6117306132ad565b7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd2403861175b8133613329565b6117815760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b600d80546001600160801b038481166001600160c01b031983168117600160801b426001600160401b031602179093556040805191909216808252602082019390935233917f26b8010a81fad3e15c7545637c99390bdeb250bf0a67e4cf43c3d220ec2acc31910160405180910390a25050610e3a60015f80516020615f0b83398151915255565b6118116139e7565b61181a82613a8b565b6118248282613abc565b5050565b6118306132ad565b6118386132e4565b604051637125eda960e11b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__9063e24bdb5290611871905f9085906004016156e3565b5f6040518083038186803b158015611887575f80fd5b505af4158015611899573d5f803e3d5ffd5b505060405163184d91f360e31b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__925063c26c8f989150610df8905f9085906004016156e3565b610e3a6040518060400160405280838036038101906118f591906156fb565b815233602090910152612037565b5f61190c613b78565b505f80516020615eab83398151915290565b6119266132ad565b61192e6132e4565b604080516325f2df6f60e01b81525f6004820152825151602482015260208301516001600160a01b03908116604483015291830151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__906325f2df6f906084015f6040518083038186803b1580156119a0575f80fd5b505af41580156119b2573d5f803e3d5ffd5b5050604080516330e78a9160e11b81525f6004820152845151602482015260208501516001600160a01b03908116604483015291850151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__92506361cf15229150608401610df8565b611a1f6132ad565b611a276132e4565b604051632d0c1e8b60e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__90632d0c1e8b90611a60905f9085906004016156e3565b5f6040518083038186803b158015611a76575f80fd5b505af4158015611a88573d5f803e3d5ffd5b505060405163c0c66ed960e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__925063c0c66ed99150610df8905f9085906004016156e3565b611acd6141bb565b5f80516020615f0b83398151915254600203611afc57604051633ee5aeb560e01b815260040160405180910390fd5b604080516001600160a01b0384165f908152600e60209081529083902061016083018452805461012084019081528451600183018054608095810283018601909752606082018781529596879660a088019687959487946101408b01949193909284928491840182828015611b8e57602002820191905f5260205f20905b815481526020019060010190808311611b7a575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611be457602002820191905f5260205f20905b815481526020019060010190808311611bd0575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c3a57602002820191905f5260205f20905b815481526020019060010190808311611c26575b505050505081525050815250508152602001600482016040518060400160405290815f8201548152602001600182016040518060600160405290815f8201805480602002602001604051908101604052809291908181526020018280548015611cc057602002820191905f5260205f20905b815481526020019060010190808311611cac575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d1657602002820191905f5260205f20905b815481526020019060010190808311611d02575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611d6c57602002820191905f5260205f20905b815481526020019060010190808311611d58575b505050919092525050509052508152600882015460208083019190915260099092015460ff1615156040918201529183526001600160a01b0386811691840182905260165483516370a0823160e01b815260048101939093529390920192909116906370a0823190602401602060405180830381865afa158015611df2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e169190615575565b8152601a546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8a9190615575565b81526018546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efe9190615575565b905290505b919050565b5f611f1281613864565b612a305f611f1e613bc1565b8054909150600160401b900460ff1680611f45575080546001600160401b03808416911610155b15611f635760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155611f8c613be9565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b604051637574b6e360e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__90637574b6e39060a401611201565b61203f6132ad565b6120476132e4565b604051623fe27360e01b81525f6004820152815180516001600160a01b039081166024840152602091820151151560448401529083015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__90623fe273906084015f6040518083038186803b1580156120b8575f80fd5b505af41580156120ca573d5f803e3d5ffd5b505060405163724e2b6f60e01b81525f6004820152835180516001600160a01b039081166024840152602091820151151560448401529085015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__925063724e2b6f9150608401610df8565b6121386141f5565b604051633978289f60e01b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90633978289f90604401602060405180830381865af415801561218c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b09190615575565b6040805160808101825282546001600160a01b0381168252600160a01b900460ff1615156020820152600183015491810191909152600290910154606082015292915050565b6121fe6132ad565b6122066132e4565b60405163da25f11760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__9063da25f1179061223f905f908590600401615715565b5f6040518083038186803b158015612255575f80fd5b505af4158015612267573d5f803e3d5ffd5b50506040516388fb1b6760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__92506388fb1b679150610df8905f908590600401615715565b6122d16040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051636e9bc7eb60e11b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063dd378fd69060240160a060405180830381865af415801561231e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a191906157ab565b604080518082019091525f8082526020820152604051631ae5e80160e31b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063d72f4008906024016040805180830381865af41580156123a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a1919061580d565b6123cd6132ad565b6123d56132e4565b6040516210aa0b60e31b815273__$45d7492db284be01938913cb41b9cac2a6$__90628550589061240c905f908590600401615840565b5f6040518083038186803b158015612422575f80fd5b505af4158015612434573d5f803e3d5ffd5b50506040516364140a8360e01b815273__$45d7492db284be01938913cb41b9cac2a6$__92506364140a839150610df8905f908590600401615840565b6124796132ad565b6124816132e4565b604051631e55c20b60e31b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9063f2ae1058906124ba905f9085906004016155d3565b5f6040518083038186803b1580156124d0575f80fd5b505af41580156124e2573d5f803e3d5ffd5b5050604051630f6470bd60e01b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9250630f6470bd915061251f905f9085906004016155d3565b5f6040518083038186803b158015612535575f80fd5b505af4158015612547573d5f803e3d5ffd5b505050505f19815f0151602001510361147d578051516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610df8565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6125cf8133613329565b6125f55760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b610e3a613bf9565b610e3a60405180604001604052808380360381019061261c9190615878565b815233602090910152611493565b610e3a6040518060600160405280838152602001336001600160a01b03168152602001336001600160a01b0316815250611348565b5f9182525f80516020615ecb833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61269d614224565b60405163301d1d1560e21b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063c0747454906126d6905f908690600401615281565b61012060405180830381865af41580156126f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615892565b60606127206132e4565b6110015f8484613c41565b61275b60405180608001604052805f6001600160a01b031681526020015f81526020015f81526020015f81525090565b604051634c9829bf60e11b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90639930537e90604401602060405180830381865af41580156127af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127d39190615575565b6040805160808101825282546001600160a01b0316815260018301546020820152600283015491810191909152600390910154606082015292915050565b61283e6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526006820154815260078201549281019290925260088101549282019290925260098201546060820152600a90910154608082015290565b60405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af41580156128f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615575565b610e3a60405180604001604052808380360381019061293a91906158f4565b8152336020909101526121f6565b610e3a60405180604001604052808361296090615597565b815233602090910152611828565b61297782611249565b61298081613864565b6112e4838361390f565b5f806129946132ad565b61299c6132e4565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab6129c78133613329565b6129ed5760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b604051639f53ee0f60e01b815273__$d00168f5747027b5a56099c751031d7e40$__90639f53ee0f90612a26905f908890600401615976565b5f6040518083038186803b158015612a3c575f80fd5b505af4158015612a4e573d5f803e3d5ffd5b505060405163647a4b7560e11b815273__$d00168f5747027b5a56099c751031d7e40$__925063c8f496ea9150612a8b905f908890600401615976565b6040805180830381865af4158015612aa5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac9919061598b565b909350915073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__632d77afb65f612af960408801602089016145e1565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015612b3c575f80fd5b505af4158015612b4e573d5f803e3d5ffd5b5050604051636e6595c160e01b815273__$d00168f5747027b5a56099c751031d7e40$__9250636e6595c19150612b8d905f90889088906004016159ad565b5f6040518083038186803b158015612ba3575f80fd5b505af4158015612bb5573d5f803e3d5ffd5b5050505050612bd060015f80516020615f0b83398151915255565b915091565b5f612bde6132ad565b612be66132e4565b6040516320b5435f60e11b815273__$04d32033081e1e9356971d8f4b5098bcad$__9063416a86be90612c1f905f9086906004016159d1565b5f6040518083038186803b158015612c35575f80fd5b505af4158015612c47573d5f803e3d5ffd5b5050604051630d0699cb60e21b815273__$04d32033081e1e9356971d8f4b5098bcad$__925063341a672c9150612c84905f9086906004016159d1565b602060405180830381865af4158015612c9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc39190615575565b60405163489d188160e01b815290915073__$04d32033081e1e9356971d8f4b5098bcad$__9063489d188190612d01905f90869086906004016159f9565b5f6040518083038186803b158015612d17575f80fd5b505af4158015612d29573d5f803e3d5ffd5b50505050611f0360015f80516020615f0b83398151915255565b610e3a604051806060016040528083803603810190612d6291906144c8565b81523360208201819052604090910152612471565b604051631928c8e960e11b81525f60048201819052602482018390529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__9063325191d290604401602060405180830381865af4158015612dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615a2f565b5f612dfb613bc1565b805490915060ff600160401b82041615906001600160401b03165f81158015612e215750825b90505f826001600160401b03166001148015612e3c5750303b155b905081158015612e4a575080155b15612e685760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315612e9257845460ff60401b1916600160401b1785555b6040516369777eb960e01b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__906369777eb990612ed3905f908e908e908e908e908e90600401615b63565b5f6040518083038186803b158015612ee9575f80fd5b505af4158015612efb573d5f803e3d5ffd5b50505050612f07613d29565b612f0f613d29565b612f17613be9565b612f1f613d29565b604051632ffdac7160e21b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__9063bff6b1c490612f5e905f908d908d908d908d90600401615bd7565b5f6040518083038186803b158015612f74575f80fd5b505af4158015612f86573d5f803e3d5ffd5b50505050612f965f801b8b61386e565b50612fc17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8b61386e565b50612fec7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab8b61386e565b506130177f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd240388b61386e565b50831561305e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6130726132ad565b61307a6132e4565b604051635792057f60e11b81525f60048201528135602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__9063af240afe906044015f6040518083038186803b1580156130c9575f80fd5b505af41580156130db573d5f803e3d5ffd5b50506040516320e9b9f960e11b81525f60048201528335602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__92506341d373f29150604401610df8565b6131256132ad565b61312d6132e4565b604051631005beb160e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__9063802df58890613166905f908590600401615c3b565b5f6040518083038186803b15801561317c575f80fd5b505af415801561318e573d5f803e3d5ffd5b5050604051631cc17ae560e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__925063e60bd7289150610df8905f908590600401615c3b565b6131d36132ad565b6131db6132e4565b60405163024889b160e51b815273__$d49e499a4608ab3aca09b91fe5950492b6$__90634911362090613214905f908590600401615c3b565b5f6040518083038186803b15801561322a575f80fd5b505af415801561323c573d5f803e3d5ffd5b505060405163a083c0ab60e01b815273__$d49e499a4608ab3aca09b91fe5950492b6$__925063a083c0ab9150610df8905f908590600401615c3b565b610e3a6040518060600160405280838036038101906132989190615c80565b8152336020820181905260409091015261191e565b5f80516020615f0b8339815191528054600119016132de57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f80516020615eeb8339815191525460ff16156133145760405163d93c066560e01b815260040160405180910390fd5b565b60015f80516020615f0b83398151915255565b5f613334838361265f565b1561334157506001610cc3565b601c546001600160a01b031661335857505f610cc3565b601c54604051632474521560e21b8152600481018590526001600160a01b038481166024830152909116906391d1485490604401602060405180830381865afa1580156133a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133cb9190615a2f565b9050610cc3565b6001600160a01b0382165f908152600e8401602090815260408083208151808301835281548152825160018301805460808188028401810190965260608301818152613518978c978c979591870194919391928492909184919084018282801561345957602002820191905f5260205f20905b815481526020019060010190808311613445575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156134af57602002820191905f5260205f20905b81548152602001906001019080831161349b575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561350557602002820191905f5260205f20905b8154815260200190600101908083116134f1575b5050505050815250508152505085613d31565b949350505050565b5f61100183600c015f015f9054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613578573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061359c9190615575565b6135a790600a615d7a565b6135b19084615d85565b60148501546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa1580156135fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061361f9190615d9c565b61362a90600a615dbc565b60158601546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa158015613674573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136989190615d9c565b6136a390600a615dbc565b600c87015460408051634c6afee560e11b815290516001600160a01b03909216916398d5fdca916004808201926020929091908290030181865afa1580156136ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137119190615575565b61371b9190615d85565b613e8b565b6001600160a01b0382165f908152600e84016020908152604080832081518083018352600482018054825283516005909301805460808188028601810190965260608501818152613518978c978c9791870194919391928492909184919084018282801561345957602002820191905f5260205f20908154815260200190600101908083116134455750505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156134af57602002820191905f5260205f209081548152602001906001019080831161349b57505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561350557602002820191905f5260205f20908154815260200190600101908083116134f1575050505050815250508152505085613d31565b610e3a8133613e97565b5f5f80516020615ecb833981519152613887848461265f565b613906575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556138bc3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610cc3565b5f915050610cc3565b5f5f80516020615ecb833981519152613928848461265f565b15613906575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610cc3565b613990613ed0565b5f80516020615eeb833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613a6d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613a615f80516020615eab833981519152546001600160a01b031690565b6001600160a01b031614155b156133145760405163703e46dd60e11b815260040160405180910390fd5b5f613a968133613329565b6118245760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613b16575060408051601f3d908101601f19168201909252613b1391810190615575565b60015b613b3e57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610e6a565b5f80516020615eab8339815191528114613b6e57604051632a87526960e21b815260048101829052602401610e6a565b61131d8383613eff565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146133145760405163703e46dd60e11b815260040160405180910390fd5b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610cc3565b613bf1613f54565b613314613f79565b613c016132e4565b5f80516020615eeb833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258336139c9565b6060816001600160401b03811115613c5b57613c5b6142ef565b604051908082528060200260200182016040528015613c8e57816020015b6060815260200190600190039081613c795790505b5090505f5b82811015613d2157613cfc30858584818110613cb157613cb1615dca565b9050602002810190613cc39190615dde565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613f8192505050565b828281518110613d0e57613d0e615dca565b6020908102919091010152600101613c93565b509392505050565b613314613f54565b5f815f03613d52576040516301c85f6760e71b815260040160405180910390fd5b613d5b83613fea565b15613d835760405162b04ee160e61b81526001600160a01b0385166004820152602401610e6a565b8251613d8f8342615e27565b1115613dc357613d9f8242615e27565b8351604051636f2f16a760e01b815260048101929092526024820152604401610e6a565b60408051606081018252600d8701546001600160801b03811682526001600160401b03600160801b82048116602080850191909152600160c01b909204168284015285015191516315c6891560e11b8152909173__$99c8b6d537f6911e4d5e2b5618b4ddcec4$__91632b8d122a91613e429185908890600401615e3a565b602060405180830381865af4158015613e5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e819190615575565b9695505050505050565b5f613518848484614003565b613ea1828261265f565b6118245760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610e6a565b5f80516020615eeb8339815191525460ff1661331457604051638dfc202b60e01b815260040160405180910390fd5b613f088261402f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115613f4c5761131d8282613f81565b611824614092565b613f5c6140b1565b61331457604051631afcd79f60e31b815260040160405180910390fd5b613316613f54565b60605f80846001600160a01b031684604051613f9d9190615e8f565b5f60405180830381855af49150503d805f8114613fd5576040519150601f19603f3d011682016040523d82523d5f602084013e613fda565b606091505b50915091506112408583836140ca565b80515f90158015610cc35750610cc38260200151614126565b5f825f1904841183021582026140205763ad251c275f526004601cfd5b50910281810615159190040190565b806001600160a01b03163b5f0361406457604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610e6a565b5f80516020615eab83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156133145760405163b398979f60e01b815260040160405180910390fd5b5f6140ba613bc1565b54600160401b900460ff16919050565b6060826140df576140da8261414c565b611001565b81511580156140f657506001600160a01b0384163b155b1561411f57604051639996b31560e01b81526001600160a01b0385166004820152602401610e6a565b5080611001565b8051515f9015801561413b5750602082015151155b8015610cc357505060400151511590565b80511561415c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6040518060e001604052806141886141f5565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060a001604052806141ce61425b565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b60405180608001604052805f6001600160a01b031681526020015f151581526020015f81526020015f81525090565b6040518060c001604052806142376141f5565b81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806080016040528061426e61428e565b815260200161427b61428e565b81525f6020820181905260409091015290565b60405180604001604052805f81526020016142c360405180606001604052806060815260200160608152602001606081525090565b905290565b5f602082840312156142d8575f80fd5b81356001600160e01b031981168114611001575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405161012081016001600160401b0381118282101715614326576143266142ef565b60405290565b604051608081016001600160401b0381118282101715614326576143266142ef565b604080519081016001600160401b0381118282101715614326576143266142ef565b604051606081016001600160401b0381118282101715614326576143266142ef565b60405160a081016001600160401b0381118282101715614326576143266142ef565b60405160c081016001600160401b0381118282101715614326576143266142ef565b604051601f8201601f191681016001600160401b03811182821017156143fe576143fe6142ef565b604052919050565b6001600160a01b0381168114610e3a575f80fd5b8035611f0381614406565b8015158114610e3a575f80fd5b8035611f0381614425565b5f610120828403121561444e575f80fd5b614456614303565b90506144618261441a565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a08201526144a160c08301614432565b60c082015260e082013560e08201526101006144be81840161441a565b9082015292915050565b5f61012082840312156144d9575f80fd5b611001838361443d565b80516001600160a01b0316825260208082015115159083015260408082015190830152606090810151910152565b5f610140820190506145248284516144e3565b60018060a01b036020840151166080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015260c083015161012083015292915050565b5f60608284031215614580575f80fd5b50919050565b5f60608284031215614596575f80fd5b6110018383614570565b5f60408284031215614580575f80fd5b5f602082840312156145c0575f80fd5b81356001600160401b038111156145d5575f80fd5b613518848285016145a0565b5f602082840312156145f1575f80fd5b813561100181614406565b60a08101610cc3828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5f8060408385031215614646575f80fd5b823561465181614406565b946020939093013593505050565b5f6001600160401b03821115614677576146776142ef565b5060051b60200190565b5f82601f830112614690575f80fd5b813560206146a56146a08361465f565b6143d6565b8083825260208201915060208460051b8701019350868411156146c6575f80fd5b602086015b848110156146e257803583529183019183016146cb565b509695505050505050565b5f608082840312156146fd575f80fd5b61470561432c565b905081358152602082013561471981614425565b6020820152604082013561472c81614425565b604082015260608201356001600160401b03811115614749575f80fd5b61475584828501614681565b60608301525092915050565b5f60208284031215614771575f80fd5b81356001600160401b0380821115614787575f80fd5b908301906040828603121561479a575f80fd5b6147a261434e565b8235828111156147b0575f80fd5b6147bc878286016146ed565b825250602083013592506147cf83614406565b6020810192909252509392505050565b5f602082840312156147ef575f80fd5b5035919050565b5f805f8060808587031215614809575f80fd5b843561481481614406565b935060208501359250604085013561482b81614406565b9396929550929360600135925050565b5f6020828403121561484b575f80fd5b81356001600160401b03811115614860575f80fd5b820160808185031215611001575f80fd5b5f8060408385031215614882575f80fd5b82359150602083013561489481614406565b809150509250929050565b5f61016082840312156148b0575f80fd5b6148b8614370565b90506148c4838361443d565b81526101208201356148d581614406565b60208201526101408201356148e981614406565b604082015292915050565b5f6101608284031215614905575f80fd5b611001838361489f565b5f6060828403121561491f575f80fd5b614927614370565b905081358152602082013560208201526040820135604082015292915050565b5f60808284031215614957575f80fd5b61495f61434e565b614969848461490f565b8152606083013561497981614406565b60208201529392505050565b5f60208284031215614995575f80fd5b81356001600160801b0381168114611001575f80fd5b5f80604083850312156149bc575f80fd5b82356149c781614406565b91506020838101356001600160401b03808211156149e3575f80fd5b818601915086601f8301126149f6575f80fd5b813581811115614a0857614a086142ef565b614a1a601f8201601f191685016143d6565b91508082528784828501011115614a2f575f80fd5b80848401858401375f848284010152508093505050509250929050565b5f60408284031215614a5c575f80fd5b614a6461434e565b9050813581526020808301356001600160401b0380821115614a84575f80fd5b9084019060608287031215614a97575f80fd5b614a9f614370565b823582811115614aad575f80fd5b614ab988828601614681565b8252508383013582811115614acc575f80fd5b8301601f81018813614adc575f80fd5b8035614aea6146a08261465f565b81815260059190911b8201860190868101908a831115614b08575f80fd5b928701925b82841015614b2657833582529287019290870190614b0d565b84880152505050604083013582811115614b3e575f80fd5b614b4a88828601614681565b60408301525080848601525050505092915050565b5f60408284031215614b6f575f80fd5b614b7761434e565b905081356001600160401b03811115614b8e575f80fd5b614b9a84828501614a4c565b8252506020820135614bab81614406565b602082015292915050565b5f60208284031215614bc6575f80fd5b81356001600160401b03811115614bdb575f80fd5b61351884828501614b5f565b5f60408284031215614bf7575f80fd5b61100183836145a0565b5f60208284031215614c11575f80fd5b604051602081018181106001600160401b0382111715614c3357614c336142ef565b6040529135825250919050565b5f60608284031215614c50575f80fd5b614c58614370565b614c628484614c01565b81526020830135614c7281614406565b60208201526040830135614c8581614406565b60408201529392505050565b5f5b83811015614cab578181015183820152602001614c93565b50505f910152565b5f8151808452614cca816020860160208601614c91565b601f01601f19169290920160200192915050565b602081525f6110016020830184614cb3565b5f815180845260208085019450602084015f5b83811015614d1f57815187529582019590820190600101614d03565b509495945050505050565b805182525f602080830151604082860152805160606040870152614d5160a0870182614cf0565b83830151603f19888303810160608a0152815180845291860193505f929091908601905b80841015614d955784518252938601936001939093019290860190614d75565b5060408501519550818982030160808a0152614db18187614cf0565b9998505050505050505050565b602081525f825160a060208401528051608060c0850152614de3610140850182614d2a565b9050602082015160bf198583030160e0860152614e008282614d2a565b91505060408201516101008501526060820151151561012085015260208501519150614e3760408501836001600160a01b03169052565b6040850151606085015260608501516080850152608085015160a0850152809250505092915050565b5f60408284031215614e70575f80fd5b614e7861434e565b90508135614e8581614406565b81526020820135614bab81614425565b5f60608284031215614ea5575f80fd5b614ead61434e565b614eb78484614e60565b8152604083013561497981614406565b60808101610cc382846144e3565b5f60a08284031215614ee5575f80fd5b614eed614392565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f6101408284031215614f32575f80fd5b614f3a61434e565b9050614f468383614ed5565b8152614bab8360a08401614ed5565b5f6101608284031215614f66575f80fd5b614f6e61434e565b614f788484614f21565b815261014083013561497981614406565b5f61012082019050614f9c8284516144e3565b60208301516080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015292915050565b5f8060208385031215614fe6575f80fd5b82356001600160401b0380821115614ffc575f80fd5b818501915085601f83011261500f575f80fd5b81358181111561501d575f80fd5b8660208260051b8501011115615031575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561509857603f19888603018452615086858351614cb3565b9450928501929085019060010161506a565b5092979650505050505050565b5f6101408284031215614580575f80fd5b5f60e08284031215614580575f80fd5b5f6101208284031215614580575f80fd5b5f60c08284031215614580575f80fd5b5f805f805f8587036102808112156150fd575f80fd5b863561510881614406565b955061511788602089016150d7565b945060a060df198201121561512a575f80fd5b5060e08601925061513f8761018088016145a0565b915061514f876101c088016150d7565b90509295509295909350565b5f60208284031215614580575f80fd5b5f6020828403121561517b575f80fd5b611001838361515b565b5f60608284031215615195575f80fd5b61519d614370565b905081356151aa81614406565b81526020828101359082015260408201356148e981614406565b5f608082840312156151d4575f80fd5b6151dc61434e565b90506151e88383615185565b81526060820135614bab81614406565b5f60808284031215615208575f80fd5b61100183836151c4565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c0810151151560c083015260e081015160e0830152610100808201516112e4828501826001600160a01b03169052565b82815261014081016110016020830184615212565b5f608082840312156152a6575f80fd5b6152ae61432c565b905081516152bb81614406565b815260208201516152cb81614425565b80602083015250604082015160408201526060820151606082015292915050565b5f61014082840312156152fd575f80fd5b60405160e081018181106001600160401b038211171561531f5761531f6142ef565b60405261532c8484615296565b8152608083015161533c81614406565b8060208301525060a0830151604082015260c0830151606082015260e0830151608082015261010083015160a082015261012083015160c08201528091505092915050565b5f608082019050838252823560208301526020830135604083015260408301356153aa81614406565b6001600160a01b03166060929092019190915292915050565b828152604060208201525f8235601e198436030181126153e1575f80fd5b83016020810190356001600160401b038111156153fc575f80fd5b80360382131561540a575f80fd5b604080850152806080850152808260a08601375f60a082860101526020850135606085015260a0601f19601f830116850101925050509392505050565b5f60608284031215615457575f80fd5b6110018383615185565b828152604060208201525f8251604080840152805160808401526020810151151560a08401526040810151151560c084015260608101519050608060e08401526154af610100840182614cf0565b602094909401516001600160a01b031660609390930192909252509092915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610cc357610cc36154d1565b5f8261551257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60c08284031215615527575f80fd5b61552f6143b4565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015161556981614406565b60a08201529392505050565b5f60208284031215615585575f80fd5b5051919050565b5f610cc336836146ed565b5f610cc33683614a4c565b6155ad828251615212565b60208101516001600160a01b039081166101208401526040909101511661014090910152565b828152610180810161100160208301846155a2565b918252805180516020808501919091528082015160408086019190915290910151606084015201516001600160a01b0316608082015260a00190565b5f8151606084526156386060850182614cf0565b602084810151868303878301528051808452908201935090915f91908301905b808310156156785784518252938301936001929092019190830190615658565b506040860151935086810360408801526156928185614cf0565b979650505050505050565b5f8151604084528051604085015260208101519050604060608501526156c66080850182615624565b6020938401516001600160a01b0316949093019390935250919050565b828152604060208201525f613518604083018461569d565b5f6040828403121561570b575f80fd5b6110018383614e60565b5f61018082019050838252825161575b60208401825180518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602090810151805160c08501528082015160e0850152604081015161010085015260608101516101208501526080015161014084015292909201516001600160a01b031661016090910152919050565b5f60a082840312156157bb575f80fd5b6157c3614392565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6001600160401b0381168114610e3a575f80fd5b5f6040828403121561581d575f80fd5b61582561434e565b825161583081614406565b81526020830151614979816157f9565b5f60608201905083825282356020830152602083013561585f81614406565b6001600160a01b03166040929092019190915292915050565b5f60608284031215615888575f80fd5b611001838361490f565b5f61012082840312156158a3575f80fd5b6158ab6143b4565b6158b58484615296565b81526080830151602082015260a0830151604082015260c0830151606082015260e0830151608082015261010083015160a08201528091505092915050565b5f6101408284031215615905575f80fd5b6110018383614f21565b80358252602081013561592181614406565b6001600160a01b03908116602084015260408281013590840152606080830135908401526080808301359084015260a0828101359084015260c08201359061596882614406565b80821660c085015250505050565b8281526101008101611001602083018461590f565b5f806040838503121561599c575f80fd5b505080516020909101519092909150565b83815261012081016159c2602083018561590f565b82610100830152949350505050565b8281526080810161100160208301848035825260208082013590830152604090810135910152565b83815260a08101615a2160208301858035825260208082013590830152604090810135910152565b826080830152949350505050565b5f60208284031215615a3f575f80fd5b815161100181614425565b803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0810135615a8481614406565b6001600160a01b031660a0929092019190915250565b8035615aa581614406565b6001600160a01b031682526020810135615abe816157f9565b6001600160401b0381166020840152505050565b8035615add81614406565b6001600160a01b039081168352602082013590615af982614406565b9081166020840152604082013590615b1082614406565b9081166040840152606082013590615b2782614406565b9081166060840152608082013590615b3e82614406565b908116608084015260a082013590615b5582614406565b80821660a085015250505050565b8681526001600160a01b03861660208201526102a08101615b876040830187615a4a565b84356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152615bc96101a0830185615a9a565b6156926101e0830184615ad2565b8581526102808101615bec6020830187615a4a565b843560e08301526020850135610100830152604085013561012083015260608501356101408301526080850135610160830152615c2d610180830185615a9a565b613e816101c0830184615ad2565b82815260a081016110016020830184805180516001600160a01b0390811684526020808301518186015260409283015182169285019290925291015116606090910152565b5f60208284031215615c90575f80fd5b6110018383614c01565b600181815b80851115615cd457815f1904821115615cba57615cba6154d1565b80851615615cc757918102915b93841c9390800290615c9f565b509250929050565b5f82615cea57506001610cc3565b81615cf657505f610cc3565b8160018114615d0c5760028114615d1657615d32565b6001915050610cc3565b60ff841115615d2757615d276154d1565b50506001821b610cc3565b5060208310610133831016604e8410600b8410161715615d55575081810a610cc3565b615d5f8383615c9a565b805f1904821115615d7257615d726154d1565b029392505050565b5f6110018383615cdc565b8082028115828204841417610cc357610cc36154d1565b5f60208284031215615dac575f80fd5b815160ff81168114611001575f80fd5b5f61100160ff841683615cdc565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112615df3575f80fd5b8301803591506001600160401b03821115615e0c575f80fd5b602001915036819003821315615e20575f80fd5b9250929050565b80820180821115610cc357610cc36154d1565b60a081525f615e4c60a0830186615624565b90506001600160801b03845116602083015260208401516001600160401b0380821660408501528060408701511660608501525050826080830152949350505050565b5f8251615ea0818460208701614c91565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220db53e39fafeb6758e3bee5bcf6394daa189c06a50577b2f4276ae064a15c23fd64736f6c63430008170033", - "sourceMap": "4084:13278:279:-:0;;;1171:4:87;1128:48;;5000:53:279;;;;;;;;;-1:-1:-1;5024:22:279;:20;:22::i;:::-;4084:13278;;7709:422:86;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:86;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:86;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:86;-1:-1:-1;;;;;8033:33:86;;;;;8085:29;;158:50:495;;;8085:29:86;;146:2:495;131:18;8085:29:86;;;;;;;7979:146;7758:373;7709:422::o;14:200:495:-;4084:13278:279;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051615fd0620001005f395f8181613ad301528181613afc0152613c640152615fd05ff3fe6080604052600436106103b3575f3560e01c80636c2eb350116101e9578063ac9650d811610108578063d927acef1161009d578063f45bf01c1161006d578063f45bf01c14610c2a578063f54ae18b14610c3d578063fa823af514610c50578063fd17174a14610c63575f80fd5b8063d927acef14610bbd578063e05001f514610be5578063e236052b14610bf8578063f1bf35c314610c0b575f80fd5b8063ca40742c116100d8578063ca40742c14610b59578063cb2e9bdc14610b78578063ccd8d4d114610b8b578063d547741f14610b9e575f80fd5b8063ac9650d814610a8f578063ad3cb1cc14610aaf578063b5ec748714610adf578063c421a75914610b3a575f80fd5b80637f417c061161017e5780638ea68d7e1161014e5780638ea68d7e14610a1e57806391d1485414610a315780639ab8011514610a50578063a217fddf14610a7c575f80fd5b80637f417c06146109d1578063834dafb5146109e45780638456cb59146109f75780638e57277614610a0b575f80fd5b806376c1b82f116101b957806376c1b82f146108fc5780637a32376a146109285780637c90a6ca1461093b5780637dc0d1d014610990575f80fd5b80636c2eb3501461079257806373b683be146107a657806373d4a13a146107c557806375829a36146108e9575f80fd5b80632f2ff15d116102d55780634fd9a8a51161026a57806353e043d41161023a57806353e043d4146106f957806354fd4d501461070c5780635c975abb146107435780635cbc51eb14610766575f80fd5b80634fd9a8a5146106ac578063510aeb39146106bf57806352d1902d146106d2578063536b9c79146106e6575f80fd5b80633ae6d7c3116102a55780633ae6d7c3146106535780633f4ba83a1461066657806344ce7c301461067a5780634f1ef28614610699575f80fd5b80632f2ff15d146105ef57806336568abe1461060e5780633746f8581461062d5780633962a68614610640575f80fd5b8063134f3f961161034b578063248a9ca31161031b578063248a9ca31461058b5780632b4c9a20146105aa5780632b59bd99146105bd5780632e106f21146105dc575f80fd5b8063134f3f96146104d65780631970e5ea146104e95780631e5eb1d0146105085780631ff75b0b1461056c575f80fd5b806304c842221161038657806304c842221461044b5780630cf8542f146104775780630cfa9a491461048a5780630d37ab00146104a9575f80fd5b806301ffc9a7146103b757806302088c51146103eb57806302f2855a146104175780630317b9df1461042c575b5f80fd5b3480156103c2575f80fd5b506103d66103d1366004614390565b610c76565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b5061040a610405366004614590565b610cac565b6040516103e291906145d9565b61042a61042536600461464e565b610d2d565b005b348015610437575f80fd5b5061042a610446366004614678565b610e20565b348015610456575f80fd5b5061046a6104653660046146a9565b610f24565b6040516103e291906146c4565b61042a61048536600461464e565b610fab565b348015610495575f80fd5b506103d66104a43660046146a9565b610fd8565b3480156104b4575f80fd5b506104c86104c33660046146fd565b611119565b6040519081526020016103e2565b61042a6104e4366004614829565b61112c565b3480156104f4575f80fd5b506104c86105033660046148a7565b6111da565b348015610513575f80fd5b5061051c6111e5565b6040516103e29190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201516001600160a01b03169181019190915260c00190565b348015610577575f80fd5b506104c86105863660046148be565b611297565b348015610596575f80fd5b506104c86105a53660046148a7565b61133a565b61042a6105b836600461464e565b61135a565b3480156105c8575f80fd5b506104c86105d73660046146fd565b611387565b61042a6105ea366004614903565b611393565b3480156105fa575f80fd5b5061042a610609366004614939565b6113b9565b348015610619575f80fd5b5061042a610628366004614939565b6113db565b61042a61063b366004614678565b611413565b61042a61064e3660046149bc565b611439565b61042a610661366004614a0f565b611584565b348015610671575f80fd5b5061042a6117c0565b348015610685575f80fd5b506103d66106943660046146a9565b611819565b61042a6106a7366004614a4d565b61194c565b61042a6106ba366004614c58565b61196b565b61042a6106cd366004614c89565b611a19565b3480156106dd575f80fd5b506104c8611a46565b61042a6106f4366004614ce2565b611a61565b61042a610707366004614c58565b611b5a565b348015610717575f80fd5b5060408051808201909152600681526576312e382e3160d01b60208201525b6040516103e29190614d80565b34801561074e575f80fd5b505f80516020615f5b8339815191525460ff166103d6565b348015610771575f80fd5b506107856107803660046146a9565b611c08565b6040516103e29190614e60565b34801561079d575f80fd5b5061042a61204b565b3480156107b1575f80fd5b506104c86107c03660046148be565b61211b565b3480156107d0575f80fd5b5061087860408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152506040805161010081018252601154815260125460208201526014546001600160a01b03908116928201929092526015548216606082015260165482166080820152601a54821660a0820152601854821660c082015260195490911660e082015290565b604080518251815260208084015190820152828201516001600160a01b039081169282019290925260608084015183169082015260808084015183169082015260a08084015183169082015260c08084015183169082015260e09283015190911691810191909152610100016103e2565b61042a6108f7366004614f37565b61217a565b348015610907575f80fd5b5061091b6109163660046148a7565b612273565b6040516103e29190614f69565b61042a610936366004614ff7565b612339565b348015610946575f80fd5b5061094f6123e7565b6040516103e291905f60a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b34801561099b575f80fd5b506109a4612485565b6040805182516001600160a01b031681526020928301516001600160401b031692810192909252016103e2565b61042a6109df366004614c89565b612508565b61042a6109f23660046149bc565b6125b4565b348015610a02575f80fd5b5061042a6126e7565b61042a610a1936600461464e565b612740565b61042a610a2c366004614590565b61276d565b348015610a3c575f80fd5b506103d6610a4b366004614939565b6127a2565b348015610a5b575f80fd5b50610a6f610a6a366004614590565b6127d8565b6040516103e2919061502b565b348015610a87575f80fd5b506104c85f81565b610aa2610a9d366004615077565b612859565b6040516103e291906150e5565b348015610aba575f80fd5b50610736604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610aea575f80fd5b50610afe610af93660046148a7565b61286e565b6040516103e2919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b348015610b45575f80fd5b5061046a610b543660046146a9565b612954565b348015610b64575f80fd5b506104c8610b733660046146a9565b6129db565b61042a610b86366004615147565b612a5e565b61042a610b99366004614678565b612a8b565b348015610ba9575f80fd5b5061042a610bb8366004614939565b612ab1565b610bd0610bcb366004615158565b612acd565b604080519283526020830191909152016103e2565b6104c8610bf336600461464e565b612d18565b61042a610c06366004615168565b612e86565b348015610c16575f80fd5b5061042a610c25366004615189565b612eba565b61042a610c3836600461520d565b613132565b61042a610c4b36600461529a565b6131e5565b61042a610c5e36600461529a565b613293565b61042a610c7136600461520d565b613341565b5f6001600160e01b03198216637965db0b60e01b1480610ca657506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb461423d565b604051631c81982560e11b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__90633903304a90610ced905f908690600401615323565b61014060405180830381865af4158015610d09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca6919061538e565b610d35613375565b610d3d6133ac565b604051635fed4de960e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__90635fed4de990610d76905f908590600401615423565b5f6040518083038186803b158015610d8c575f80fd5b505af4158015610d9e573d5f803e3d5ffd5b505060405163d96aec4360e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__925063d96aec439150610ddb905f908590600401615423565b5f6040518083038186803b158015610df1575f80fd5b505af4158015610e03573d5f803e3d5ffd5b50505050610e1d60015f80516020615f7b83398151915255565b50565b5f610e2b81336133f1565b610e565760405163e2517d3f60e01b8152336004820152602481018290526044015b60405180910390fd5b60405163e57980dd60e01b815273__$72c16261390208f563094e6a4fc9f74031$__9063e57980dd90610e8f905f908690600401615465565b5f6040518083038186803b158015610ea5575f80fd5b505af4158015610eb7573d5f803e3d5ffd5b5050604051634752b3b360e01b815273__$72c16261390208f563094e6a4fc9f74031$__9250634752b3b39150610ef4905f908690600401615465565b5f6040518083038186803b158015610f0a575f80fd5b505af4158015610f1c573d5f803e3d5ffd5b505050505050565b610f516040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526001820154815260028201549281019290925260038101549282019290925260048201546060820152600590910154608082015290565b610e1d604051806040016040528083803603810190610fca91906154e9565b815233602090910152613293565b6001600160a01b0381165f908152600e6020908152604080832081518083018352600482018054825283516005909301805460808188028601810190965260608501818152610ca6979496939594870194938492849184018282801561105b57602002820191905f5260205f20905b815481526020019060010190808311611047575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b157602002820191905f5260205f20905b81548152602001906001019080831161109d575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561110757602002820191905f5260205f20905b8154815260200190600101908083116110f3575b5050505050815250508152505061349a565b5f6111258184846134b3565b9392505050565b611134613375565b61113c6133ac565b6040516333d4ade560e01b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__906333d4ade590611175905f908590600401615503565b5f6040518083038186803b15801561118b575f80fd5b505af415801561119d573d5f803e3d5ffd5b505060405163178bcac760e11b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__9250632f17958e9150610ddb905f908590600401615503565b5f610ca68183613601565b6112216040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681525090565b6040516386617e7760e01b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__906386617e779060240160c060405180830381865af415801561126e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615573565b905090565b60405163897bce1f60e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__9063897bce1f9060a4015b602060405180830381865af415801561130d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133191906155d1565b95945050505050565b5f9081525f80516020615f3b833981519152602052604090206001015490565b610e1d60405180604001604052808380360381019061137991906154e9565b8152336020909101526131e5565b5f611125818484613801565b610e1d6040518060400160405280836113ab906155e8565b81523360209091015261112c565b6113c28261133a565b6113cb81613945565b6113d5838361394f565b50505050565b6001600160a01b03811633146114045760405163334bd91960e11b815260040160405180910390fd5b61140e82826139f0565b505050565b610e1d60405180604001604052808361142b906155f3565b815233602090910152611b5a565b611441613375565b6114496133ac565b60405163160b9e6b60e31b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063b05cf35890611482905f90859060040161562f565b5f6040518083038186803b158015611498575f80fd5b505af41580156114aa573d5f803e3d5ffd5b5050604051639f46aa4160e01b815273__$c58e2605104bb31274ad8c04841b6a7550$__9250639f46aa4191506114e7905f90859060040161562f565b5f6040518083038186803b1580156114fd575f80fd5b505af415801561150f573d5f803e3d5ffd5b505050505f19815f0151602001510361156e5760208101516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610ddb565b610e1d60015f80516020615f7b83398151915255565b61158c613375565b6115946133ac565b602081015160405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af41580156115f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161c91906155d1565b60405163f9c417bd60e01b815290915073__$7fa168b5d238863382c2bf886894022425$__9063f9c417bd90611658905f908790600401615644565b5f6040518083038186803b15801561166e575f80fd5b505af4158015611680573d5f803e3d5ffd5b5050604051634971bf9960e01b815273__$7fa168b5d238863382c2bf886894022425$__9250634971bf9991506116bd905f908790600401615644565b5f6040518083038186803b1580156116d3575f80fd5b505af41580156116e5573d5f803e3d5ffd5b505060405163046dbd1360e11b81525f600482018190526001600160a01b0386166024830152925073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__91506308db7a2690604401602060405180830381865af4158015611748573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176c91906155d1565b90508181116117a75760405163625a84dd60e01b81526001600160a01b03841660048201526024810183905260448101829052606401610e4d565b505050610e1d60015f80516020615f7b83398151915255565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6117eb81336133f1565b6118115760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b610e1d613a69565b6001600160a01b0381165f908152600e602090815260408083208151808301835281548152825160018301805460808188028401810190965260608301818152610ca6979496948701948492849184018282801561105b57602002820191905f5260205f20908154815260200190600101908083116110475750505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b157602002820191905f5260205f209081548152602001906001019080831161109d57505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561110757602002820191905f5260205f20908154815260200190600101908083116110f3575050505050815250508152505061349a565b611954613ac8565b61195d82613b6c565b6119678282613b9d565b5050565b611973613375565b61197b6133ac565b604051637125eda960e11b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__9063e24bdb52906119b4905f90859060040161573f565b5f6040518083038186803b1580156119ca575f80fd5b505af41580156119dc573d5f803e3d5ffd5b505060405163184d91f360e31b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__925063c26c8f989150610ddb905f90859060040161573f565b610e1d604051806040016040528083803603810190611a389190615757565b81523360209091015261217a565b5f611a4f613c59565b505f80516020615f1b83398151915290565b611a69613375565b611a716133ac565b604080516325f2df6f60e01b81525f6004820152825151602482015260208301516001600160a01b03908116604483015291830151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__906325f2df6f906084015f6040518083038186803b158015611ae3575f80fd5b505af4158015611af5573d5f803e3d5ffd5b5050604080516330e78a9160e11b81525f6004820152845151602482015260208501516001600160a01b03908116604483015291850151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__92506361cf15229150608401610ddb565b611b62613375565b611b6a6133ac565b604051632d0c1e8b60e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__90632d0c1e8b90611ba3905f90859060040161573f565b5f6040518083038186803b158015611bb9575f80fd5b505af4158015611bcb573d5f803e3d5ffd5b505060405163c0c66ed960e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__925063c0c66ed99150610ddb905f90859060040161573f565b611c10614283565b5f80516020615f7b83398151915254600203611c3f57604051633ee5aeb560e01b815260040160405180910390fd5b604080516001600160a01b0384165f908152600e60209081529083902061016083018452805461012084019081528451600183018054608095810283018601909752606082018781529596879660a088019687959487946101408b01949193909284928491840182828015611cd157602002820191905f5260205f20905b815481526020019060010190808311611cbd575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d2757602002820191905f5260205f20905b815481526020019060010190808311611d13575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611d7d57602002820191905f5260205f20905b815481526020019060010190808311611d69575b505050505081525050815250508152602001600482016040518060400160405290815f8201548152602001600182016040518060600160405290815f8201805480602002602001604051908101604052809291908181526020018280548015611e0357602002820191905f5260205f20905b815481526020019060010190808311611def575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611e5957602002820191905f5260205f20905b815481526020019060010190808311611e45575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611eaf57602002820191905f5260205f20905b815481526020019060010190808311611e9b575b505050919092525050509052508152600882015460208083019190915260099092015460ff1615156040918201529183526001600160a01b0386811691840182905260165483516370a0823160e01b815260048101939093529390920192909116906370a0823190602401602060405180830381865afa158015611f35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5991906155d1565b8152601a546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611fa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fcd91906155d1565b81526018546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa15801561201d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204191906155d1565b905290505b919050565b5f61205581613945565b612a315f612061613ca2565b8054909150600160401b900460ff1680612088575080546001600160401b03808416911610155b156120a65760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556120cf613cca565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b604051637574b6e360e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__90637574b6e39060a4016112f2565b612182613375565b61218a6133ac565b604051623fe27360e01b81525f6004820152815180516001600160a01b039081166024840152602091820151151560448401529083015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__90623fe273906084015f6040518083038186803b1580156121fb575f80fd5b505af415801561220d573d5f803e3d5ffd5b505060405163724e2b6f60e01b81525f6004820152835180516001600160a01b039081166024840152602091820151151560448401529085015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__925063724e2b6f9150608401610ddb565b61227b6142bd565b604051633978289f60e01b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90633978289f90604401602060405180830381865af41580156122cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122f391906155d1565b6040805160808101825282546001600160a01b0381168252600160a01b900460ff1615156020820152600183015491810191909152600290910154606082015292915050565b612341613375565b6123496133ac565b60405163da25f11760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__9063da25f11790612382905f908590600401615771565b5f6040518083038186803b158015612398575f80fd5b505af41580156123aa573d5f803e3d5ffd5b50506040516388fb1b6760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__92506388fb1b679150610ddb905f908590600401615771565b6124146040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051636e9bc7eb60e11b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063dd378fd69060240160a060405180830381865af4158015612461573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615807565b604080518082019091525f8082526020820152604051631ae5e80160e31b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063d72f4008906024016040805180830381865af41580156124e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615869565b612510613375565b6125186133ac565b6040516210aa0b60e31b815273__$45d7492db284be01938913cb41b9cac2a6$__90628550589061254f905f90859060040161589c565b5f6040518083038186803b158015612565575f80fd5b505af4158015612577573d5f803e3d5ffd5b50506040516364140a8360e01b815273__$45d7492db284be01938913cb41b9cac2a6$__92506364140a839150610ddb905f90859060040161589c565b6125bc613375565b6125c46133ac565b604051631e55c20b60e31b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9063f2ae1058906125fd905f90859060040161562f565b5f6040518083038186803b158015612613575f80fd5b505af4158015612625573d5f803e3d5ffd5b5050604051630f6470bd60e01b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9250630f6470bd9150612662905f90859060040161562f565b5f6040518083038186803b158015612678575f80fd5b505af415801561268a573d5f803e3d5ffd5b505050505f19815f0151602001510361156e578051516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610ddb565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61271281336133f1565b6127385760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b610e1d613cda565b610e1d60405180604001604052808380360381019061275f91906158d4565b815233602090910152611584565b610e1d6040518060600160405280838152602001336001600160a01b03168152602001336001600160a01b0316815250611439565b5f9182525f80516020615f3b833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6127e06142ec565b60405163301d1d1560e21b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063c074745490612819905f908690600401615323565b61012060405180830381865af4158015612835573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906158ee565b60606128636133ac565b6111255f8484613d22565b61289e60405180608001604052805f6001600160a01b031681526020015f81526020015f81526020015f81525090565b604051634c9829bf60e11b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90639930537e90604401602060405180830381865af41580156128f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061291691906155d1565b6040805160808101825282546001600160a01b0316815260018301546020820152600283015491810191909152600390910154606082015292915050565b6129816040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526006820154815260078201549281019290925260088101549282019290925260098201546060820152600a90910154608082015290565b60405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af4158015612a3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906155d1565b610e1d604051806040016040528083803603810190612a7d9190615950565b815233602090910152612339565b610e1d604051806040016040528083612aa3906155f3565b81523360209091015261196b565b612aba8261133a565b612ac381613945565b6113d583836139f0565b5f80612ad7613375565b612adf6133ac565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab612b0a81336133f1565b612b305760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b604051639f53ee0f60e01b815273__$d00168f5747027b5a56099c751031d7e40$__90639f53ee0f90612b69905f9088906004016159d2565b5f6040518083038186803b158015612b7f575f80fd5b505af4158015612b91573d5f803e3d5ffd5b505060405163647a4b7560e11b815273__$d00168f5747027b5a56099c751031d7e40$__925063c8f496ea9150612bce905f9088906004016159d2565b6040805180830381865af4158015612be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c0c91906159e7565b909350915073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__632d77afb65f612c3c60408801602089016146a9565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015612c7f575f80fd5b505af4158015612c91573d5f803e3d5ffd5b5050604051636e6595c160e01b815273__$d00168f5747027b5a56099c751031d7e40$__9250636e6595c19150612cd0905f9088908890600401615a09565b5f6040518083038186803b158015612ce6575f80fd5b505af4158015612cf8573d5f803e3d5ffd5b5050505050612d1360015f80516020615f7b83398151915255565b915091565b5f612d21613375565b612d296133ac565b6040516320b5435f60e11b815273__$04d32033081e1e9356971d8f4b5098bcad$__9063416a86be90612d62905f908690600401615a2d565b5f6040518083038186803b158015612d78575f80fd5b505af4158015612d8a573d5f803e3d5ffd5b5050604051630d0699cb60e21b815273__$04d32033081e1e9356971d8f4b5098bcad$__925063341a672c9150612dc7905f908690600401615a2d565b602060405180830381865af4158015612de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e0691906155d1565b60405163489d188160e01b815290915073__$04d32033081e1e9356971d8f4b5098bcad$__9063489d188190612e44905f9086908690600401615a55565b5f6040518083038186803b158015612e5a575f80fd5b505af4158015612e6c573d5f803e3d5ffd5b5050505061204660015f80516020615f7b83398151915255565b610e1d604051806060016040528083803603810190612ea59190614590565b815233602082018190526040909101526125b4565b5f612ec3613ca2565b805490915060ff600160401b82041615906001600160401b03165f81158015612ee95750825b90505f826001600160401b03166001148015612f045750303b155b905081158015612f12575080155b15612f305760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315612f5a57845460ff60401b1916600160401b1785555b6040516369777eb960e01b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__906369777eb990612f9b905f908e908e908e908e908e90600401615ba4565b5f6040518083038186803b158015612fb1575f80fd5b505af4158015612fc3573d5f803e3d5ffd5b50505050612fcf613e0a565b612fd7613e0a565b612fdf613cca565b612fe7613e0a565b604051632ffdac7160e21b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__9063bff6b1c490613026905f908d908d908d908d90600401615c18565b5f6040518083038186803b15801561303c575f80fd5b505af415801561304e573d5f803e3d5ffd5b5050505061305e5f801b8b61394f565b506130897f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8b61394f565b506130b47ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab8b61394f565b506130df7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd240388b61394f565b50831561312657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b61313a613375565b6131426133ac565b604051635792057f60e11b81525f60048201528135602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__9063af240afe906044015f6040518083038186803b158015613191575f80fd5b505af41580156131a3573d5f803e3d5ffd5b50506040516320e9b9f960e11b81525f60048201528335602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__92506341d373f29150604401610ddb565b6131ed613375565b6131f56133ac565b604051631005beb160e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__9063802df5889061322e905f908590600401615c7c565b5f6040518083038186803b158015613244575f80fd5b505af4158015613256573d5f803e3d5ffd5b5050604051631cc17ae560e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__925063e60bd7289150610ddb905f908590600401615c7c565b61329b613375565b6132a36133ac565b60405163024889b160e51b815273__$d49e499a4608ab3aca09b91fe5950492b6$__906349113620906132dc905f908590600401615c7c565b5f6040518083038186803b1580156132f2575f80fd5b505af4158015613304573d5f803e3d5ffd5b505060405163a083c0ab60e01b815273__$d49e499a4608ab3aca09b91fe5950492b6$__925063a083c0ab9150610ddb905f908590600401615c7c565b610e1d6040518060600160405280838036038101906133609190615cc1565b81523360208201819052604090910152611a61565b5f80516020615f7b8339815191528054600119016133a657604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f80516020615f5b8339815191525460ff16156133dc5760405163d93c066560e01b815260040160405180910390fd5b565b60015f80516020615f7b83398151915255565b5f6133fc83836127a2565b1561340957506001610ca6565b601c546001600160a01b031661342057505f610ca6565b601c54604051632474521560e21b8152600481018590526001600160a01b038481166024830152909116906391d1485490604401602060405180830381865afa15801561346f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134939190615cdb565b9050610ca6565b80515f90158015610ca65750610ca68260200151613e12565b6001600160a01b0382165f908152600e84016020908152604080832081518083018352815481528251600183018054608081880284018101909652606083018181526135f9978c978c979591870194919391928492909184919084018282801561353a57602002820191905f5260205f20905b815481526020019060010190808311613526575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561359057602002820191905f5260205f20905b81548152602001906001019080831161357c575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156135e657602002820191905f5260205f20905b8154815260200190600101908083116135d2575b5050505050815250508152505085613e38565b949350505050565b5f61112583600c015f015f9054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613659573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061367d91906155d1565b61368890600a615dea565b6136929084615df5565b60148501546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa1580156136dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137009190615e0c565b61370b90600a615e2c565b60158601546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa158015613755573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137799190615e0c565b61378490600a615e2c565b600c87015460408051634c6afee560e11b815290516001600160a01b03909216916398d5fdca916004808201926020929091908290030181865afa1580156137ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137f291906155d1565b6137fc9190615df5565b613f92565b6001600160a01b0382165f908152600e840160209081526040808320815180830183526004820180548252835160059093018054608081880286018101909652606085018181526135f9978c978c9791870194919391928492909184919084018282801561353a57602002820191905f5260205f209081548152602001906001019080831161352657505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561359057602002820191905f5260205f209081548152602001906001019080831161357c5750505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156135e657602002820191905f5260205f20908154815260200190600101908083116135d2575050505050815250508152505085613e38565b610e1d8133613f9e565b5f5f80516020615f3b83398151915261396884846127a2565b6139e7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561399d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610ca6565b5f915050610ca6565b5f5f80516020615f3b833981519152613a0984846127a2565b156139e7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610ca6565b613a71613fd7565b5f80516020615f5b833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613b4e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613b425f80516020615f1b833981519152546001600160a01b031690565b6001600160a01b031614155b156133dc5760405163703e46dd60e11b815260040160405180910390fd5b5f613b7781336133f1565b6119675760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613bf7575060408051601f3d908101601f19168201909252613bf4918101906155d1565b60015b613c1f57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610e4d565b5f80516020615f1b8339815191528114613c4f57604051632a87526960e21b815260048101829052602401610e4d565b61140e8383614006565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146133dc5760405163703e46dd60e11b815260040160405180910390fd5b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ca6565b613cd261405b565b6133dc614080565b613ce26133ac565b5f80516020615f5b833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833613aaa565b6060816001600160401b03811115613d3c57613d3c6143b7565b604051908082528060200260200182016040528015613d6f57816020015b6060815260200190600190039081613d5a5790505b5090505f5b82811015613e0257613ddd30858584818110613d9257613d92615e3a565b9050602002810190613da49190615e4e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061408892505050565b828281518110613def57613def615e3a565b6020908102919091010152600101613d74565b509392505050565b6133dc61405b565b8051515f90158015613e275750602082015151155b8015610ca657505060400151511590565b5f815f03613e59576040516301c85f6760e71b815260040160405180910390fd5b613e628361349a565b15613e8a5760405162b04ee160e61b81526001600160a01b0385166004820152602401610e4d565b8251613e968342615e97565b1115613eca57613ea68242615e97565b8351604051636f2f16a760e01b815260048101929092526024820152604401610e4d565b60408051606081018252600d8701546001600160801b03811682526001600160401b03600160801b82048116602080850191909152600160c01b909204168284015285015191516315c6891560e11b8152909173__$99c8b6d537f6911e4d5e2b5618b4ddcec4$__91632b8d122a91613f499185908890600401615eaa565b602060405180830381865af4158015613f64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f8891906155d1565b9695505050505050565b5f6135f98484846140f1565b613fa882826127a2565b6119675760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610e4d565b5f80516020615f5b8339815191525460ff166133dc57604051638dfc202b60e01b815260040160405180910390fd5b61400f8261411d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156140535761140e8282614088565b611967614180565b61406361419f565b6133dc57604051631afcd79f60e31b815260040160405180910390fd5b6133de61405b565b60605f80846001600160a01b0316846040516140a49190615eff565b5f60405180830381855af49150503d805f81146140dc576040519150601f19603f3d011682016040523d82523d5f602084013e6140e1565b606091505b50915091506113318583836141b8565b5f825f19048411830215820261410e5763ad251c275f526004601cfd5b50910281810615159190040190565b806001600160a01b03163b5f0361415257604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610e4d565b5f80516020615f1b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156133dc5760405163b398979f60e01b815260040160405180910390fd5b5f6141a8613ca2565b54600160401b900460ff16919050565b6060826141cd576141c882614214565b611125565b81511580156141e457506001600160a01b0384163b155b1561420d57604051639996b31560e01b81526001600160a01b0385166004820152602401610e4d565b5080611125565b8051156142245780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6040518060e001604052806142506142bd565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060a00160405280614296614323565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b60405180608001604052805f6001600160a01b031681526020015f151581526020015f81526020015f81525090565b6040518060c001604052806142ff6142bd565b81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060800160405280614336614356565b8152602001614343614356565b81525f6020820181905260409091015290565b60405180604001604052805f815260200161438b60405180606001604052806060815260200160608152602001606081525090565b905290565b5f602082840312156143a0575f80fd5b81356001600160e01b031981168114611125575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405161012081016001600160401b03811182821017156143ee576143ee6143b7565b60405290565b604051608081016001600160401b03811182821017156143ee576143ee6143b7565b604080519081016001600160401b03811182821017156143ee576143ee6143b7565b604051606081016001600160401b03811182821017156143ee576143ee6143b7565b60405160a081016001600160401b03811182821017156143ee576143ee6143b7565b60405160c081016001600160401b03811182821017156143ee576143ee6143b7565b604051601f8201601f191681016001600160401b03811182821017156144c6576144c66143b7565b604052919050565b6001600160a01b0381168114610e1d575f80fd5b8035612046816144ce565b8015158114610e1d575f80fd5b8035612046816144ed565b5f6101208284031215614516575f80fd5b61451e6143cb565b9050614529826144e2565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015261456960c083016144fa565b60c082015260e082013560e08201526101006145868184016144e2565b9082015292915050565b5f61012082840312156145a1575f80fd5b6111258383614505565b80516001600160a01b0316825260208082015115159083015260408082015190830152606090810151910152565b5f610140820190506145ec8284516145ab565b60018060a01b036020840151166080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015260c083015161012083015292915050565b5f60608284031215614648575f80fd5b50919050565b5f6060828403121561465e575f80fd5b6111258383614638565b5f60408284031215614648575f80fd5b5f60208284031215614688575f80fd5b81356001600160401b0381111561469d575f80fd5b6135f984828501614668565b5f602082840312156146b9575f80fd5b8135611125816144ce565b60a08101610ca6828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5f806040838503121561470e575f80fd5b8235614719816144ce565b946020939093013593505050565b5f6001600160401b0382111561473f5761473f6143b7565b5060051b60200190565b5f82601f830112614758575f80fd5b8135602061476d61476883614727565b61449e565b8083825260208201915060208460051b87010193508684111561478e575f80fd5b602086015b848110156147aa5780358352918301918301614793565b509695505050505050565b5f608082840312156147c5575f80fd5b6147cd6143f4565b90508135815260208201356147e1816144ed565b602082015260408201356147f4816144ed565b604082015260608201356001600160401b03811115614811575f80fd5b61481d84828501614749565b60608301525092915050565b5f60208284031215614839575f80fd5b81356001600160401b038082111561484f575f80fd5b9083019060408286031215614862575f80fd5b61486a614416565b823582811115614878575f80fd5b614884878286016147b5565b82525060208301359250614897836144ce565b6020810192909252509392505050565b5f602082840312156148b7575f80fd5b5035919050565b5f805f80608085870312156148d1575f80fd5b84356148dc816144ce565b93506020850135925060408501356148f3816144ce565b9396929550929360600135925050565b5f60208284031215614913575f80fd5b81356001600160401b03811115614928575f80fd5b820160808185031215611125575f80fd5b5f806040838503121561494a575f80fd5b82359150602083013561495c816144ce565b809150509250929050565b5f6101608284031215614978575f80fd5b614980614438565b905061498c8383614505565b815261012082013561499d816144ce565b60208201526101408201356149b1816144ce565b604082015292915050565b5f61016082840312156149cd575f80fd5b6111258383614967565b5f606082840312156149e7575f80fd5b6149ef614438565b905081358152602082013560208201526040820135604082015292915050565b5f60808284031215614a1f575f80fd5b614a27614416565b614a3184846149d7565b81526060830135614a41816144ce565b60208201529392505050565b5f8060408385031215614a5e575f80fd5b8235614a69816144ce565b91506020838101356001600160401b0380821115614a85575f80fd5b818601915086601f830112614a98575f80fd5b813581811115614aaa57614aaa6143b7565b614abc601f8201601f1916850161449e565b91508082528784828501011115614ad1575f80fd5b80848401858401375f848284010152508093505050509250929050565b5f60408284031215614afe575f80fd5b614b06614416565b9050813581526020808301356001600160401b0380821115614b26575f80fd5b9084019060608287031215614b39575f80fd5b614b41614438565b823582811115614b4f575f80fd5b614b5b88828601614749565b8252508383013582811115614b6e575f80fd5b8301601f81018813614b7e575f80fd5b8035614b8c61476882614727565b81815260059190911b8201860190868101908a831115614baa575f80fd5b928701925b82841015614bc857833582529287019290870190614baf565b84880152505050604083013582811115614be0575f80fd5b614bec88828601614749565b60408301525080848601525050505092915050565b5f60408284031215614c11575f80fd5b614c19614416565b905081356001600160401b03811115614c30575f80fd5b614c3c84828501614aee565b8252506020820135614c4d816144ce565b602082015292915050565b5f60208284031215614c68575f80fd5b81356001600160401b03811115614c7d575f80fd5b6135f984828501614c01565b5f60408284031215614c99575f80fd5b6111258383614668565b5f60208284031215614cb3575f80fd5b604051602081018181106001600160401b0382111715614cd557614cd56143b7565b6040529135825250919050565b5f60608284031215614cf2575f80fd5b614cfa614438565b614d048484614ca3565b81526020830135614d14816144ce565b60208201526040830135614d27816144ce565b60408201529392505050565b5f5b83811015614d4d578181015183820152602001614d35565b50505f910152565b5f8151808452614d6c816020860160208601614d33565b601f01601f19169290920160200192915050565b602081525f6111256020830184614d55565b5f815180845260208085019450602084015f5b83811015614dc157815187529582019590820190600101614da5565b509495945050505050565b805182525f602080830151604082860152805160606040870152614df360a0870182614d92565b83830151603f19888303810160608a0152815180845291860193505f929091908601905b80841015614e375784518252938601936001939093019290860190614e17565b5060408501519550818982030160808a0152614e538187614d92565b9998505050505050505050565b602081525f825160a060208401528051608060c0850152614e85610140850182614dcc565b9050602082015160bf198583030160e0860152614ea28282614dcc565b91505060408201516101008501526060820151151561012085015260208501519150614ed960408501836001600160a01b03169052565b6040850151606085015260608501516080850152608085015160a0850152809250505092915050565b5f60408284031215614f12575f80fd5b614f1a614416565b90508135614f27816144ce565b81526020820135614c4d816144ed565b5f60608284031215614f47575f80fd5b614f4f614416565b614f598484614f02565b81526040830135614a41816144ce565b60808101610ca682846145ab565b5f60a08284031215614f87575f80fd5b614f8f61445a565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f6101408284031215614fd4575f80fd5b614fdc614416565b9050614fe88383614f77565b8152614c4d8360a08401614f77565b5f6101608284031215615008575f80fd5b615010614416565b61501a8484614fc3565b8152610140830135614a41816144ce565b5f6101208201905061503e8284516145ab565b60208301516080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015292915050565b5f8060208385031215615088575f80fd5b82356001600160401b038082111561509e575f80fd5b818501915085601f8301126150b1575f80fd5b8135818111156150bf575f80fd5b8660208260051b85010111156150d3575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561513a57603f19888603018452615128858351614d55565b9450928501929085019060010161510c565b5092979650505050505050565b5f6101408284031215614648575f80fd5b5f60e08284031215614648575f80fd5b5f6101208284031215614648575f80fd5b5f60c08284031215614648575f80fd5b5f805f805f85870361028081121561519f575f80fd5b86356151aa816144ce565b95506151b98860208901615179565b945060a060df19820112156151cc575f80fd5b5060e0860192506151e1876101808801614668565b91506151f1876101c08801615179565b90509295509295909350565b5f60208284031215614648575f80fd5b5f6020828403121561521d575f80fd5b61112583836151fd565b5f60608284031215615237575f80fd5b61523f614438565b9050813561524c816144ce565b81526020828101359082015260408201356149b1816144ce565b5f60808284031215615276575f80fd5b61527e614416565b905061528a8383615227565b81526060820135614c4d816144ce565b5f608082840312156152aa575f80fd5b6111258383615266565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c0810151151560c083015260e081015160e0830152610100808201516113d5828501826001600160a01b03169052565b828152610140810161112560208301846152b4565b5f60808284031215615348575f80fd5b6153506143f4565b9050815161535d816144ce565b8152602082015161536d816144ed565b80602083015250604082015160408201526060820151606082015292915050565b5f610140828403121561539f575f80fd5b60405160e081018181106001600160401b03821117156153c1576153c16143b7565b6040526153ce8484615338565b815260808301516153de816144ce565b8060208301525060a0830151604082015260c0830151606082015260e0830151608082015261010083015160a082015261012083015160c08201528091505092915050565b5f6080820190508382528235602083015260208301356040830152604083013561544c816144ce565b6001600160a01b03166060929092019190915292915050565b828152604060208201525f8235601e19843603018112615483575f80fd5b83016020810190356001600160401b0381111561549e575f80fd5b8036038213156154ac575f80fd5b604080850152806080850152808260a08601375f60a082860101526020850135606085015260a0601f19601f830116850101925050509392505050565b5f606082840312156154f9575f80fd5b6111258383615227565b828152604060208201525f8251604080840152805160808401526020810151151560a08401526040810151151560c084015260608101519050608060e0840152615551610100840182614d92565b602094909401516001600160a01b031660609390930192909252509092915050565b5f60c08284031215615583575f80fd5b61558b61447c565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a08301516155c5816144ce565b60a08201529392505050565b5f602082840312156155e1575f80fd5b5051919050565b5f610ca636836147b5565b5f610ca63683614aee565b6156098282516152b4565b60208101516001600160a01b039081166101208401526040909101511661014090910152565b828152610180810161112560208301846155fe565b918252805180516020808501919091528082015160408086019190915290910151606084015201516001600160a01b0316608082015260a00190565b5f8151606084526156946060850182614d92565b602084810151868303878301528051808452908201935090915f91908301905b808310156156d457845182529383019360019290920191908301906156b4565b506040860151935086810360408801526156ee8185614d92565b979650505050505050565b5f8151604084528051604085015260208101519050604060608501526157226080850182615680565b6020938401516001600160a01b0316949093019390935250919050565b828152604060208201525f6135f960408301846156f9565b5f60408284031215615767575f80fd5b6111258383614f02565b5f6101808201905083825282516157b760208401825180518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602090810151805160c08501528082015160e0850152604081015161010085015260608101516101208501526080015161014084015292909201516001600160a01b031661016090910152919050565b5f60a08284031215615817575f80fd5b61581f61445a565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6001600160401b0381168114610e1d575f80fd5b5f60408284031215615879575f80fd5b615881614416565b825161588c816144ce565b81526020830151614a4181615855565b5f6060820190508382528235602083015260208301356158bb816144ce565b6001600160a01b03166040929092019190915292915050565b5f606082840312156158e4575f80fd5b61112583836149d7565b5f61012082840312156158ff575f80fd5b61590761447c565b6159118484615338565b81526080830151602082015260a0830151604082015260c0830151606082015260e0830151608082015261010083015160a08201528091505092915050565b5f6101408284031215615961575f80fd5b6111258383614fc3565b80358252602081013561597d816144ce565b6001600160a01b03908116602084015260408281013590840152606080830135908401526080808301359084015260a0828101359084015260c0820135906159c4826144ce565b80821660c085015250505050565b8281526101008101611125602083018461596b565b5f80604083850312156159f8575f80fd5b505080516020909101519092909150565b8381526101208101615a1e602083018561596b565b82610100830152949350505050565b8281526080810161112560208301848035825260208082013590830152604090810135910152565b83815260a08101615a7d60208301858035825260208082013590830152604090810135910152565b826080830152949350505050565b803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0810135615ac5816144ce565b6001600160a01b031660a0929092019190915250565b8035615ae6816144ce565b6001600160a01b031682526020810135615aff81615855565b6001600160401b0381166020840152505050565b8035615b1e816144ce565b6001600160a01b039081168352602082013590615b3a826144ce565b9081166020840152604082013590615b51826144ce565b9081166040840152606082013590615b68826144ce565b9081166060840152608082013590615b7f826144ce565b908116608084015260a082013590615b96826144ce565b80821660a085015250505050565b8681526001600160a01b03861660208201526102a08101615bc86040830187615a8b565b84356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152615c0a6101a0830185615adb565b6156ee6101e0830184615b13565b8581526102808101615c2d6020830187615a8b565b843560e08301526020850135610100830152604085013561012083015260608501356101408301526080850135610160830152615c6e610180830185615adb565b613f886101c0830184615b13565b82815260a081016111256020830184805180516001600160a01b0390811684526020808301518186015260409283015182169285019290925291015116606090910152565b5f60208284031215615cd1575f80fd5b6111258383614ca3565b5f60208284031215615ceb575f80fd5b8151611125816144ed565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115615d4457815f1904821115615d2a57615d2a615cf6565b80851615615d3757918102915b93841c9390800290615d0f565b509250929050565b5f82615d5a57506001610ca6565b81615d6657505f610ca6565b8160018114615d7c5760028114615d8657615da2565b6001915050610ca6565b60ff841115615d9757615d97615cf6565b50506001821b610ca6565b5060208310610133831016604e8410600b8410161715615dc5575081810a610ca6565b615dcf8383615d0a565b805f1904821115615de257615de2615cf6565b029392505050565b5f6111258383615d4c565b8082028115828204841417610ca657610ca6615cf6565b5f60208284031215615e1c575f80fd5b815160ff81168114611125575f80fd5b5f61112560ff841683615d4c565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112615e63575f80fd5b8301803591506001600160401b03821115615e7c575f80fd5b602001915036819003821315615e90575f80fd5b9250929050565b80820180821115610ca657610ca6615cf6565b60a081525f615ebc60a0830186615680565b90506001600160801b03845116602083015260208401516001600160401b0380821660408501528060408701511660608501525050826080830152949350505050565b5f8251615f10818460208701614d33565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212202f00eae29f053452eb8ca6b1a62479f5b4f9da7c8be240bf9d6a98d9297f827a64736f6c63430008170033", + "sourceMap": "4084:12748:278:-:0;;;1171:4:88;1128:48;;5000:53:278;;;;;;;;;-1:-1:-1;5024:22:278;:20;:22::i;:::-;4084:12748;;7709:422:87;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:87;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:87;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:87;-1:-1:-1;;;;;8033:33:87;;;;;8085:29;;158:50:486;;;8085:29:87;;146:2:486;131:18;8085:29:87;;;;;;;7979:146;7758:373;7709:422::o;14:200:486:-;4084:12748:278;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": { "src/market/libraries/LoanLibrary.sol": { "LoanLibrary": [ - { "start": 8788, "length": 20 }, - { "start": 10359, "length": 20 } + { "start": 9111, "length": 20 }, + { "start": 10682, "length": 20 } ] }, "src/market/libraries/OfferLibrary.sol": { "OfferLibrary": [ - { "start": 4835, "length": 20 }, - { "start": 8469, "length": 20 } + { "start": 5076, "length": 20 }, + { "start": 8792, "length": 20 } ] }, "src/market/libraries/RiskLibrary.sol": { "RiskLibrary": [ - { "start": 5467, "length": 20 }, - { "start": 5583, "length": 20 }, - { "start": 5918, "length": 20 }, - { "start": 9858, "length": 20 }, - { "start": 10687, "length": 20 }, - { "start": 11216, "length": 20 }, - { "start": 11926, "length": 20 } + { "start": 5708, "length": 20 }, + { "start": 5824, "length": 20 }, + { "start": 6159, "length": 20 }, + { "start": 10181, "length": 20 }, + { "start": 11010, "length": 20 }, + { "start": 11539, "length": 20 } ] }, "src/market/libraries/YieldCurveLibrary.sol": { - "YieldCurveLibrary": [{ "start": 16152, "length": 20 }] + "YieldCurveLibrary": [{ "start": 16415, "length": 20 }] }, "src/market/libraries/actions/BuyCreditLimit.sol": { "BuyCreditLimit": [ - { "start": 6966, "length": 20 }, - { "start": 7065, "length": 20 } + { "start": 7289, "length": 20 }, + { "start": 7388, "length": 20 } ] }, "src/market/libraries/actions/BuyCreditMarket.sol": { "BuyCreditMarket": [ - { "start": 3552, "length": 20 }, - { "start": 9616, "length": 20 }, - { "start": 9715, "length": 20 } + { "start": 3523, "length": 20 }, + { "start": 9939, "length": 20 }, + { "start": 10038, "length": 20 } ] }, "src/market/libraries/actions/Claim.sol": { "Claim": [ - { "start": 12694, "length": 20 }, - { "start": 12793, "length": 20 } + { "start": 12894, "length": 20 }, + { "start": 12993, "length": 20 } ] }, "src/market/libraries/actions/Compensate.sol": { "Compensate": [ - { "start": 5693, "length": 20 }, - { "start": 5792, "length": 20 } + { "start": 5934, "length": 20 }, + { "start": 6033, "length": 20 } ] }, "src/market/libraries/actions/Deposit.sol": { "Deposit": [ - { "start": 13034, "length": 20 }, - { "start": 13133, "length": 20 } + { "start": 13234, "length": 20 }, + { "start": 13333, "length": 20 } ] }, "src/market/libraries/actions/Initialize.sol": { "Initialize": [ - { "start": 12193, "length": 20 }, - { "start": 12334, "length": 20 } + { "start": 12393, "length": 20 }, + { "start": 12534, "length": 20 } ] }, "src/market/libraries/actions/Liquidate.sol": { "Liquidate": [ - { "start": 11509, "length": 20 }, - { "start": 11608, "length": 20 }, - { "start": 11733, "length": 20 } + { "start": 11832, "length": 20 }, + { "start": 11931, "length": 20 }, + { "start": 12056, "length": 20 } ] }, "src/market/libraries/actions/LiquidateWithReplacement.sol": { "LiquidateWithReplacement": [ - { "start": 11004, "length": 20 }, - { "start": 11103, "length": 20 }, - { "start": 11359, "length": 20 } + { "start": 11327, "length": 20 }, + { "start": 11426, "length": 20 }, + { "start": 11682, "length": 20 } ] }, "src/market/libraries/actions/PartialRepay.sol": { "PartialRepay": [ - { "start": 3689, "length": 20 }, - { "start": 3788, "length": 20 } + { "start": 3660, "length": 20 }, + { "start": 3759, "length": 20 } ] }, "src/market/libraries/actions/Repay.sol": { "Repay": [ - { "start": 9443, "length": 20 }, - { "start": 9541, "length": 20 } + { "start": 9766, "length": 20 }, + { "start": 9864, "length": 20 } ] }, "src/market/libraries/actions/SelfLiquidate.sol": { "SelfLiquidate": [ - { "start": 6765, "length": 20 }, - { "start": 6899, "length": 20 } + { "start": 7088, "length": 20 }, + { "start": 7222, "length": 20 } ] }, "src/market/libraries/actions/SellCreditLimit.sol": { "SellCreditLimit": [ - { "start": 6471, "length": 20 }, - { "start": 6570, "length": 20 } + { "start": 6794, "length": 20 }, + { "start": 6893, "length": 20 } ] }, "src/market/libraries/actions/SellCreditMarket.sol": { "SellCreditMarket": [ - { "start": 5223, "length": 20 }, - { "start": 5322, "length": 20 }, - { "start": 10156, "length": 20 } + { "start": 5464, "length": 20 }, + { "start": 5563, "length": 20 }, + { "start": 10479, "length": 20 } ] }, "src/market/libraries/actions/SetCopyLimitOrderConfigs.sol": { "SetCopyLimitOrderConfigs": [ - { "start": 8981, "length": 20 }, - { "start": 9080, "length": 20 } + { "start": 9304, "length": 20 }, + { "start": 9403, "length": 20 } ] }, "src/market/libraries/actions/SetUserConfiguration.sol": { "SetUserConfiguration": [ - { "start": 4391, "length": 20 }, - { "start": 4490, "length": 20 } + { "start": 4683, "length": 20 }, + { "start": 4782, "length": 20 } ] }, "src/market/libraries/actions/SetVault.sol": { "SetVault": [ - { "start": 8582, "length": 20 }, - { "start": 8716, "length": 20 } + { "start": 8905, "length": 20 }, + { "start": 9039, "length": 20 } ] }, "src/market/libraries/actions/UpdateConfig.sol": { "UpdateConfig": [ - { "start": 3970, "length": 20 }, - { "start": 4069, "length": 20 }, - { "start": 4677, "length": 20 }, - { "start": 9190, "length": 20 }, - { "start": 9322, "length": 20 } + { "start": 3941, "length": 20 }, + { "start": 4040, "length": 20 }, + { "start": 4918, "length": 20 }, + { "start": 9513, "length": 20 }, + { "start": 9645, "length": 20 } ] }, "src/market/libraries/actions/Withdraw.sol": { "Withdraw": [ - { "start": 12860, "length": 20 }, - { "start": 12959, "length": 20 } + { "start": 13060, "length": 20 }, + { "start": 13159, "length": 20 } ] } } }, "deployedBytecode": { - "object": "0x6080604052600436106103be575f3560e01c80636c2eb350116101f4578063ac9650d811610113578063d927acef116100a8578063f1bf35c311610078578063f1bf35c314610c28578063f45bf01c14610c47578063f54ae18b14610c5a578063fa823af514610c6d578063fd17174a14610c80575f80fd5b8063d927acef14610bd0578063e05001f514610be3578063e236052b14610bf6578063e5af06ce14610c09575f80fd5b8063ca40742c116100e3578063ca40742c14610b6c578063cb2e9bdc14610b8b578063ccd8d4d114610b9e578063d547741f14610bb1575f80fd5b8063ac9650d814610aa2578063ad3cb1cc14610ac2578063b5ec748714610af2578063c421a75914610b4d575f80fd5b80637f417c06116101895780638ea68d7e116101595780638ea68d7e14610a3157806391d1485414610a445780639ab8011514610a63578063a217fddf14610a8f575f80fd5b80637f417c06146109e4578063834dafb5146109f75780638456cb5914610a0a5780638e57277614610a1e575f80fd5b806376c1b82f116101c457806376c1b82f1461090f5780637a32376a1461093b5780637c90a6ca1461094e5780637dc0d1d0146109a3575f80fd5b80636c2eb350146107a557806373b683be146107b957806373d4a13a146107d857806375829a36146108fc575f80fd5b80632f2ff15d116102e05780634fd9a8a51161027557806353e043d41161024557806353e043d41461070e57806354fd4d50146107215780635c975abb146107565780635cbc51eb14610779575f80fd5b80634fd9a8a5146106c1578063510aeb39146106d457806352d1902d146106e7578063536b9c79146106fb575f80fd5b80633ae6d7c3116102b05780633ae6d7c3146106685780633f4ba83a1461067b5780634cbd882c1461068f5780634f1ef286146106ae575f80fd5b80632f2ff15d1461060457806336568abe146106235780633746f858146106425780633962a68614610655575f80fd5b80631970e5ea11610356578063248a9ca311610326578063248a9ca3146105a05780632b4c9a20146105bf5780632b59bd99146105d25780632e106f21146105f1575f80fd5b80631970e5ea146104d55780631ca3b0cb146104f45780631e5eb1d01461051d5780631ff75b0b14610581575f80fd5b806304c842221161039157806304c84222146104565780630cf8542f146104825780630d37ab0014610495578063134f3f96146104c2575f80fd5b806301ffc9a7146103c257806302088c51146103f657806302f2855a146104225780630317b9df14610437575b5f80fd5b3480156103cd575f80fd5b506103e16103dc3660046142c8565b610c93565b60405190151581526020015b60405180910390f35b348015610401575f80fd5b506104156104103660046144c8565b610cc9565b6040516103ed9190614511565b610435610430366004614586565b610d4a565b005b348015610442575f80fd5b506104356104513660046145b0565b610e3d565b348015610461575f80fd5b506104756104703660046145e1565b610f41565b6040516103ed91906145fc565b610435610490366004614586565b610fc8565b3480156104a0575f80fd5b506104b46104af366004614635565b610ff5565b6040519081526020016103ed565b6104356104d0366004614761565b611008565b3480156104e0575f80fd5b506104b46104ef3660046147df565b6110b6565b3480156104ff575f80fd5b506105086110c1565b604080519283526020830191909152016103ed565b348015610528575f80fd5b506105316110f4565b6040516103ed9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201516001600160a01b03169181019190915260c00190565b34801561058c575f80fd5b506104b461059b3660046147f6565b6111a6565b3480156105ab575f80fd5b506104b46105ba3660046147df565b611249565b6104356105cd366004614586565b611269565b3480156105dd575f80fd5b506104b46105ec366004614635565b611296565b6104356105ff36600461483b565b6112a2565b34801561060f575f80fd5b5061043561061e366004614871565b6112c8565b34801561062e575f80fd5b5061043561063d366004614871565b6112ea565b6104356106503660046145b0565b611322565b6104356106633660046148f4565b611348565b610435610676366004614947565b611493565b348015610686575f80fd5b506104356116cf565b34801561069a575f80fd5b506104356106a9366004614985565b611728565b6104356106bc3660046149ab565b611809565b6104356106cf366004614bb6565b611828565b6104356106e2366004614be7565b6118d6565b3480156106f2575f80fd5b506104b4611903565b610435610709366004614c40565b61191e565b61043561071c366004614bb6565b611a17565b34801561072c575f80fd5b506040805180820190915260048152630ec625c760e31b60208201525b6040516103ed9190614cde565b348015610761575f80fd5b505f80516020615eeb8339815191525460ff166103e1565b348015610784575f80fd5b506107986107933660046145e1565b611ac5565b6040516103ed9190614dbe565b3480156107b0575f80fd5b50610435611f08565b3480156107c4575f80fd5b506104b46107d33660046147f6565b611fd8565b3480156107e3575f80fd5b5061088b60408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152506040805161010081018252601154815260125460208201526014546001600160a01b03908116928201929092526015548216606082015260165482166080820152601a54821660a0820152601854821660c082015260195490911660e082015290565b604080518251815260208084015190820152828201516001600160a01b039081169282019290925260608084015183169082015260808084015183169082015260a08084015183169082015260c08084015183169082015260e09283015190911691810191909152610100016103ed565b61043561090a366004614e95565b612037565b34801561091a575f80fd5b5061092e6109293660046147df565b612130565b6040516103ed9190614ec7565b610435610949366004614f55565b6121f6565b348015610959575f80fd5b506109626122a4565b6040516103ed91905f60a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156109ae575f80fd5b506109b7612342565b6040805182516001600160a01b031681526020928301516001600160401b031692810192909252016103ed565b6104356109f2366004614be7565b6123c5565b610435610a053660046148f4565b612471565b348015610a15575f80fd5b506104356125a4565b610435610a2c366004614586565b6125fd565b610435610a3f3660046144c8565b61262a565b348015610a4f575f80fd5b506103e1610a5e366004614871565b61265f565b348015610a6e575f80fd5b50610a82610a7d3660046144c8565b612695565b6040516103ed9190614f89565b348015610a9a575f80fd5b506104b45f81565b610ab5610ab0366004614fd5565b612716565b6040516103ed9190615043565b348015610acd575f80fd5b50610749604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610afd575f80fd5b50610b11610b0c3660046147df565b61272b565b6040516103ed919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b348015610b58575f80fd5b50610475610b673660046145e1565b612811565b348015610b77575f80fd5b506104b4610b863660046145e1565b612898565b610435610b993660046150a5565b61291b565b610435610bac3660046145b0565b612948565b348015610bbc575f80fd5b50610435610bcb366004614871565b61296e565b610508610bde3660046150b6565b61298a565b6104b4610bf1366004614586565b612bd5565b610435610c043660046150c6565b612d43565b348015610c14575f80fd5b506103e1610c233660046147df565b612d77565b348015610c33575f80fd5b50610435610c423660046150e7565b612df2565b610435610c5536600461516b565b61306a565b610435610c683660046151f8565b61311d565b610435610c7b3660046151f8565b6131cb565b610435610c8e36600461516b565b613279565b5f6001600160e01b03198216637965db0b60e01b1480610cc357506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cd1614175565b604051631c81982560e11b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__90633903304a90610d0a905f908690600401615281565b61014060405180830381865af4158015610d26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc391906152ec565b610d526132ad565b610d5a6132e4565b604051635fed4de960e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__90635fed4de990610d93905f908590600401615381565b5f6040518083038186803b158015610da9575f80fd5b505af4158015610dbb573d5f803e3d5ffd5b505060405163d96aec4360e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__925063d96aec439150610df8905f908590600401615381565b5f6040518083038186803b158015610e0e575f80fd5b505af4158015610e20573d5f803e3d5ffd5b50505050610e3a60015f80516020615f0b83398151915255565b50565b5f610e488133613329565b610e735760405163e2517d3f60e01b8152336004820152602481018290526044015b60405180910390fd5b60405163e57980dd60e01b815273__$72c16261390208f563094e6a4fc9f74031$__9063e57980dd90610eac905f9086906004016153c3565b5f6040518083038186803b158015610ec2575f80fd5b505af4158015610ed4573d5f803e3d5ffd5b5050604051634752b3b360e01b815273__$72c16261390208f563094e6a4fc9f74031$__9250634752b3b39150610f11905f9086906004016153c3565b5f6040518083038186803b158015610f27575f80fd5b505af4158015610f39573d5f803e3d5ffd5b505050505050565b610f6e6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526001820154815260028201549281019290925260038101549282019290925260048201546060820152600590910154608082015290565b610e3a604051806040016040528083803603810190610fe79190615447565b8152336020909101526131cb565b5f6110018184846133d2565b9392505050565b6110106132ad565b6110186132e4565b6040516333d4ade560e01b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__906333d4ade590611051905f908590600401615461565b5f6040518083038186803b158015611067575f80fd5b505af4158015611079573d5f803e3d5ffd5b505060405163178bcac760e11b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__9250632f17958e9150610df8905f908590600401615461565b5f610cc38183613520565b6011545f9081906110d39082906154e5565b6110df60025f196154f8565b6012546110ec91906154e5565b915091509091565b6111306040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681525090565b6040516386617e7760e01b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__906386617e779060240160c060405180830381865af415801561117d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a19190615517565b905090565b60405163897bce1f60e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__9063897bce1f9060a4015b602060405180830381865af415801561121c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112409190615575565b95945050505050565b5f9081525f80516020615ecb833981519152602052604090206001015490565b610e3a6040518060400160405280838036038101906112889190615447565b81523360209091015261311d565b5f611001818484613720565b610e3a6040518060400160405280836112ba9061558c565b815233602090910152611008565b6112d182611249565b6112da81613864565b6112e4838361386e565b50505050565b6001600160a01b03811633146113135760405163334bd91960e11b815260040160405180910390fd5b61131d828261390f565b505050565b610e3a60405180604001604052808361133a90615597565b815233602090910152611a17565b6113506132ad565b6113586132e4565b60405163160b9e6b60e31b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063b05cf35890611391905f9085906004016155d3565b5f6040518083038186803b1580156113a7575f80fd5b505af41580156113b9573d5f803e3d5ffd5b5050604051639f46aa4160e01b815273__$c58e2605104bb31274ad8c04841b6a7550$__9250639f46aa4191506113f6905f9085906004016155d3565b5f6040518083038186803b15801561140c575f80fd5b505af415801561141e573d5f803e3d5ffd5b505050505f19815f0151602001510361147d5760208101516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610df8565b610e3a60015f80516020615f0b83398151915255565b61149b6132ad565b6114a36132e4565b602081015160405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af4158015611507573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152b9190615575565b60405163f9c417bd60e01b815290915073__$7fa168b5d238863382c2bf886894022425$__9063f9c417bd90611567905f9087906004016155e8565b5f6040518083038186803b15801561157d575f80fd5b505af415801561158f573d5f803e3d5ffd5b5050604051634971bf9960e01b815273__$7fa168b5d238863382c2bf886894022425$__9250634971bf9991506115cc905f9087906004016155e8565b5f6040518083038186803b1580156115e2575f80fd5b505af41580156115f4573d5f803e3d5ffd5b505060405163046dbd1360e11b81525f600482018190526001600160a01b0386166024830152925073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__91506308db7a2690604401602060405180830381865af4158015611657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167b9190615575565b90508181116116b65760405163625a84dd60e01b81526001600160a01b03841660048201526024810183905260448101829052606401610e6a565b505050610e3a60015f80516020615f0b83398151915255565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6116fa8133613329565b6117205760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b610e3a613988565b6117306132ad565b7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd2403861175b8133613329565b6117815760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b600d80546001600160801b038481166001600160c01b031983168117600160801b426001600160401b031602179093556040805191909216808252602082019390935233917f26b8010a81fad3e15c7545637c99390bdeb250bf0a67e4cf43c3d220ec2acc31910160405180910390a25050610e3a60015f80516020615f0b83398151915255565b6118116139e7565b61181a82613a8b565b6118248282613abc565b5050565b6118306132ad565b6118386132e4565b604051637125eda960e11b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__9063e24bdb5290611871905f9085906004016156e3565b5f6040518083038186803b158015611887575f80fd5b505af4158015611899573d5f803e3d5ffd5b505060405163184d91f360e31b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__925063c26c8f989150610df8905f9085906004016156e3565b610e3a6040518060400160405280838036038101906118f591906156fb565b815233602090910152612037565b5f61190c613b78565b505f80516020615eab83398151915290565b6119266132ad565b61192e6132e4565b604080516325f2df6f60e01b81525f6004820152825151602482015260208301516001600160a01b03908116604483015291830151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__906325f2df6f906084015f6040518083038186803b1580156119a0575f80fd5b505af41580156119b2573d5f803e3d5ffd5b5050604080516330e78a9160e11b81525f6004820152845151602482015260208501516001600160a01b03908116604483015291850151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__92506361cf15229150608401610df8565b611a1f6132ad565b611a276132e4565b604051632d0c1e8b60e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__90632d0c1e8b90611a60905f9085906004016156e3565b5f6040518083038186803b158015611a76575f80fd5b505af4158015611a88573d5f803e3d5ffd5b505060405163c0c66ed960e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__925063c0c66ed99150610df8905f9085906004016156e3565b611acd6141bb565b5f80516020615f0b83398151915254600203611afc57604051633ee5aeb560e01b815260040160405180910390fd5b604080516001600160a01b0384165f908152600e60209081529083902061016083018452805461012084019081528451600183018054608095810283018601909752606082018781529596879660a088019687959487946101408b01949193909284928491840182828015611b8e57602002820191905f5260205f20905b815481526020019060010190808311611b7a575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611be457602002820191905f5260205f20905b815481526020019060010190808311611bd0575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c3a57602002820191905f5260205f20905b815481526020019060010190808311611c26575b505050505081525050815250508152602001600482016040518060400160405290815f8201548152602001600182016040518060600160405290815f8201805480602002602001604051908101604052809291908181526020018280548015611cc057602002820191905f5260205f20905b815481526020019060010190808311611cac575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d1657602002820191905f5260205f20905b815481526020019060010190808311611d02575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611d6c57602002820191905f5260205f20905b815481526020019060010190808311611d58575b505050919092525050509052508152600882015460208083019190915260099092015460ff1615156040918201529183526001600160a01b0386811691840182905260165483516370a0823160e01b815260048101939093529390920192909116906370a0823190602401602060405180830381865afa158015611df2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e169190615575565b8152601a546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8a9190615575565b81526018546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efe9190615575565b905290505b919050565b5f611f1281613864565b612a305f611f1e613bc1565b8054909150600160401b900460ff1680611f45575080546001600160401b03808416911610155b15611f635760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155611f8c613be9565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b604051637574b6e360e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__90637574b6e39060a401611201565b61203f6132ad565b6120476132e4565b604051623fe27360e01b81525f6004820152815180516001600160a01b039081166024840152602091820151151560448401529083015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__90623fe273906084015f6040518083038186803b1580156120b8575f80fd5b505af41580156120ca573d5f803e3d5ffd5b505060405163724e2b6f60e01b81525f6004820152835180516001600160a01b039081166024840152602091820151151560448401529085015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__925063724e2b6f9150608401610df8565b6121386141f5565b604051633978289f60e01b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90633978289f90604401602060405180830381865af415801561218c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b09190615575565b6040805160808101825282546001600160a01b0381168252600160a01b900460ff1615156020820152600183015491810191909152600290910154606082015292915050565b6121fe6132ad565b6122066132e4565b60405163da25f11760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__9063da25f1179061223f905f908590600401615715565b5f6040518083038186803b158015612255575f80fd5b505af4158015612267573d5f803e3d5ffd5b50506040516388fb1b6760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__92506388fb1b679150610df8905f908590600401615715565b6122d16040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051636e9bc7eb60e11b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063dd378fd69060240160a060405180830381865af415801561231e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a191906157ab565b604080518082019091525f8082526020820152604051631ae5e80160e31b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063d72f4008906024016040805180830381865af41580156123a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a1919061580d565b6123cd6132ad565b6123d56132e4565b6040516210aa0b60e31b815273__$45d7492db284be01938913cb41b9cac2a6$__90628550589061240c905f908590600401615840565b5f6040518083038186803b158015612422575f80fd5b505af4158015612434573d5f803e3d5ffd5b50506040516364140a8360e01b815273__$45d7492db284be01938913cb41b9cac2a6$__92506364140a839150610df8905f908590600401615840565b6124796132ad565b6124816132e4565b604051631e55c20b60e31b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9063f2ae1058906124ba905f9085906004016155d3565b5f6040518083038186803b1580156124d0575f80fd5b505af41580156124e2573d5f803e3d5ffd5b5050604051630f6470bd60e01b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9250630f6470bd915061251f905f9085906004016155d3565b5f6040518083038186803b158015612535575f80fd5b505af4158015612547573d5f803e3d5ffd5b505050505f19815f0151602001510361147d578051516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610df8565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6125cf8133613329565b6125f55760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b610e3a613bf9565b610e3a60405180604001604052808380360381019061261c9190615878565b815233602090910152611493565b610e3a6040518060600160405280838152602001336001600160a01b03168152602001336001600160a01b0316815250611348565b5f9182525f80516020615ecb833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61269d614224565b60405163301d1d1560e21b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063c0747454906126d6905f908690600401615281565b61012060405180830381865af41580156126f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615892565b60606127206132e4565b6110015f8484613c41565b61275b60405180608001604052805f6001600160a01b031681526020015f81526020015f81526020015f81525090565b604051634c9829bf60e11b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90639930537e90604401602060405180830381865af41580156127af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127d39190615575565b6040805160808101825282546001600160a01b0316815260018301546020820152600283015491810191909152600390910154606082015292915050565b61283e6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526006820154815260078201549281019290925260088101549282019290925260098201546060820152600a90910154608082015290565b60405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af41580156128f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615575565b610e3a60405180604001604052808380360381019061293a91906158f4565b8152336020909101526121f6565b610e3a60405180604001604052808361296090615597565b815233602090910152611828565b61297782611249565b61298081613864565b6112e4838361390f565b5f806129946132ad565b61299c6132e4565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab6129c78133613329565b6129ed5760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b604051639f53ee0f60e01b815273__$d00168f5747027b5a56099c751031d7e40$__90639f53ee0f90612a26905f908890600401615976565b5f6040518083038186803b158015612a3c575f80fd5b505af4158015612a4e573d5f803e3d5ffd5b505060405163647a4b7560e11b815273__$d00168f5747027b5a56099c751031d7e40$__925063c8f496ea9150612a8b905f908890600401615976565b6040805180830381865af4158015612aa5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac9919061598b565b909350915073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__632d77afb65f612af960408801602089016145e1565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015612b3c575f80fd5b505af4158015612b4e573d5f803e3d5ffd5b5050604051636e6595c160e01b815273__$d00168f5747027b5a56099c751031d7e40$__9250636e6595c19150612b8d905f90889088906004016159ad565b5f6040518083038186803b158015612ba3575f80fd5b505af4158015612bb5573d5f803e3d5ffd5b5050505050612bd060015f80516020615f0b83398151915255565b915091565b5f612bde6132ad565b612be66132e4565b6040516320b5435f60e11b815273__$04d32033081e1e9356971d8f4b5098bcad$__9063416a86be90612c1f905f9086906004016159d1565b5f6040518083038186803b158015612c35575f80fd5b505af4158015612c47573d5f803e3d5ffd5b5050604051630d0699cb60e21b815273__$04d32033081e1e9356971d8f4b5098bcad$__925063341a672c9150612c84905f9086906004016159d1565b602060405180830381865af4158015612c9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc39190615575565b60405163489d188160e01b815290915073__$04d32033081e1e9356971d8f4b5098bcad$__9063489d188190612d01905f90869086906004016159f9565b5f6040518083038186803b158015612d17575f80fd5b505af4158015612d29573d5f803e3d5ffd5b50505050611f0360015f80516020615f0b83398151915255565b610e3a604051806060016040528083803603810190612d6291906144c8565b81523360208201819052604090910152612471565b604051631928c8e960e11b81525f60048201819052602482018390529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__9063325191d290604401602060405180830381865af4158015612dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615a2f565b5f612dfb613bc1565b805490915060ff600160401b82041615906001600160401b03165f81158015612e215750825b90505f826001600160401b03166001148015612e3c5750303b155b905081158015612e4a575080155b15612e685760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315612e9257845460ff60401b1916600160401b1785555b6040516369777eb960e01b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__906369777eb990612ed3905f908e908e908e908e908e90600401615b63565b5f6040518083038186803b158015612ee9575f80fd5b505af4158015612efb573d5f803e3d5ffd5b50505050612f07613d29565b612f0f613d29565b612f17613be9565b612f1f613d29565b604051632ffdac7160e21b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__9063bff6b1c490612f5e905f908d908d908d908d90600401615bd7565b5f6040518083038186803b158015612f74575f80fd5b505af4158015612f86573d5f803e3d5ffd5b50505050612f965f801b8b61386e565b50612fc17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8b61386e565b50612fec7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab8b61386e565b506130177f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd240388b61386e565b50831561305e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6130726132ad565b61307a6132e4565b604051635792057f60e11b81525f60048201528135602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__9063af240afe906044015f6040518083038186803b1580156130c9575f80fd5b505af41580156130db573d5f803e3d5ffd5b50506040516320e9b9f960e11b81525f60048201528335602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__92506341d373f29150604401610df8565b6131256132ad565b61312d6132e4565b604051631005beb160e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__9063802df58890613166905f908590600401615c3b565b5f6040518083038186803b15801561317c575f80fd5b505af415801561318e573d5f803e3d5ffd5b5050604051631cc17ae560e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__925063e60bd7289150610df8905f908590600401615c3b565b6131d36132ad565b6131db6132e4565b60405163024889b160e51b815273__$d49e499a4608ab3aca09b91fe5950492b6$__90634911362090613214905f908590600401615c3b565b5f6040518083038186803b15801561322a575f80fd5b505af415801561323c573d5f803e3d5ffd5b505060405163a083c0ab60e01b815273__$d49e499a4608ab3aca09b91fe5950492b6$__925063a083c0ab9150610df8905f908590600401615c3b565b610e3a6040518060600160405280838036038101906132989190615c80565b8152336020820181905260409091015261191e565b5f80516020615f0b8339815191528054600119016132de57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f80516020615eeb8339815191525460ff16156133145760405163d93c066560e01b815260040160405180910390fd5b565b60015f80516020615f0b83398151915255565b5f613334838361265f565b1561334157506001610cc3565b601c546001600160a01b031661335857505f610cc3565b601c54604051632474521560e21b8152600481018590526001600160a01b038481166024830152909116906391d1485490604401602060405180830381865afa1580156133a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133cb9190615a2f565b9050610cc3565b6001600160a01b0382165f908152600e8401602090815260408083208151808301835281548152825160018301805460808188028401810190965260608301818152613518978c978c979591870194919391928492909184919084018282801561345957602002820191905f5260205f20905b815481526020019060010190808311613445575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156134af57602002820191905f5260205f20905b81548152602001906001019080831161349b575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561350557602002820191905f5260205f20905b8154815260200190600101908083116134f1575b5050505050815250508152505085613d31565b949350505050565b5f61100183600c015f015f9054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613578573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061359c9190615575565b6135a790600a615d7a565b6135b19084615d85565b60148501546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa1580156135fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061361f9190615d9c565b61362a90600a615dbc565b60158601546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa158015613674573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136989190615d9c565b6136a390600a615dbc565b600c87015460408051634c6afee560e11b815290516001600160a01b03909216916398d5fdca916004808201926020929091908290030181865afa1580156136ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137119190615575565b61371b9190615d85565b613e8b565b6001600160a01b0382165f908152600e84016020908152604080832081518083018352600482018054825283516005909301805460808188028601810190965260608501818152613518978c978c9791870194919391928492909184919084018282801561345957602002820191905f5260205f20908154815260200190600101908083116134455750505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156134af57602002820191905f5260205f209081548152602001906001019080831161349b57505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561350557602002820191905f5260205f20908154815260200190600101908083116134f1575050505050815250508152505085613d31565b610e3a8133613e97565b5f5f80516020615ecb833981519152613887848461265f565b613906575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556138bc3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610cc3565b5f915050610cc3565b5f5f80516020615ecb833981519152613928848461265f565b15613906575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610cc3565b613990613ed0565b5f80516020615eeb833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613a6d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613a615f80516020615eab833981519152546001600160a01b031690565b6001600160a01b031614155b156133145760405163703e46dd60e11b815260040160405180910390fd5b5f613a968133613329565b6118245760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613b16575060408051601f3d908101601f19168201909252613b1391810190615575565b60015b613b3e57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610e6a565b5f80516020615eab8339815191528114613b6e57604051632a87526960e21b815260048101829052602401610e6a565b61131d8383613eff565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146133145760405163703e46dd60e11b815260040160405180910390fd5b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610cc3565b613bf1613f54565b613314613f79565b613c016132e4565b5f80516020615eeb833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258336139c9565b6060816001600160401b03811115613c5b57613c5b6142ef565b604051908082528060200260200182016040528015613c8e57816020015b6060815260200190600190039081613c795790505b5090505f5b82811015613d2157613cfc30858584818110613cb157613cb1615dca565b9050602002810190613cc39190615dde565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613f8192505050565b828281518110613d0e57613d0e615dca565b6020908102919091010152600101613c93565b509392505050565b613314613f54565b5f815f03613d52576040516301c85f6760e71b815260040160405180910390fd5b613d5b83613fea565b15613d835760405162b04ee160e61b81526001600160a01b0385166004820152602401610e6a565b8251613d8f8342615e27565b1115613dc357613d9f8242615e27565b8351604051636f2f16a760e01b815260048101929092526024820152604401610e6a565b60408051606081018252600d8701546001600160801b03811682526001600160401b03600160801b82048116602080850191909152600160c01b909204168284015285015191516315c6891560e11b8152909173__$99c8b6d537f6911e4d5e2b5618b4ddcec4$__91632b8d122a91613e429185908890600401615e3a565b602060405180830381865af4158015613e5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e819190615575565b9695505050505050565b5f613518848484614003565b613ea1828261265f565b6118245760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610e6a565b5f80516020615eeb8339815191525460ff1661331457604051638dfc202b60e01b815260040160405180910390fd5b613f088261402f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115613f4c5761131d8282613f81565b611824614092565b613f5c6140b1565b61331457604051631afcd79f60e31b815260040160405180910390fd5b613316613f54565b60605f80846001600160a01b031684604051613f9d9190615e8f565b5f60405180830381855af49150503d805f8114613fd5576040519150601f19603f3d011682016040523d82523d5f602084013e613fda565b606091505b50915091506112408583836140ca565b80515f90158015610cc35750610cc38260200151614126565b5f825f1904841183021582026140205763ad251c275f526004601cfd5b50910281810615159190040190565b806001600160a01b03163b5f0361406457604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610e6a565b5f80516020615eab83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156133145760405163b398979f60e01b815260040160405180910390fd5b5f6140ba613bc1565b54600160401b900460ff16919050565b6060826140df576140da8261414c565b611001565b81511580156140f657506001600160a01b0384163b155b1561411f57604051639996b31560e01b81526001600160a01b0385166004820152602401610e6a565b5080611001565b8051515f9015801561413b5750602082015151155b8015610cc357505060400151511590565b80511561415c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6040518060e001604052806141886141f5565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060a001604052806141ce61425b565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b60405180608001604052805f6001600160a01b031681526020015f151581526020015f81526020015f81525090565b6040518060c001604052806142376141f5565b81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806080016040528061426e61428e565b815260200161427b61428e565b81525f6020820181905260409091015290565b60405180604001604052805f81526020016142c360405180606001604052806060815260200160608152602001606081525090565b905290565b5f602082840312156142d8575f80fd5b81356001600160e01b031981168114611001575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405161012081016001600160401b0381118282101715614326576143266142ef565b60405290565b604051608081016001600160401b0381118282101715614326576143266142ef565b604080519081016001600160401b0381118282101715614326576143266142ef565b604051606081016001600160401b0381118282101715614326576143266142ef565b60405160a081016001600160401b0381118282101715614326576143266142ef565b60405160c081016001600160401b0381118282101715614326576143266142ef565b604051601f8201601f191681016001600160401b03811182821017156143fe576143fe6142ef565b604052919050565b6001600160a01b0381168114610e3a575f80fd5b8035611f0381614406565b8015158114610e3a575f80fd5b8035611f0381614425565b5f610120828403121561444e575f80fd5b614456614303565b90506144618261441a565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a08201526144a160c08301614432565b60c082015260e082013560e08201526101006144be81840161441a565b9082015292915050565b5f61012082840312156144d9575f80fd5b611001838361443d565b80516001600160a01b0316825260208082015115159083015260408082015190830152606090810151910152565b5f610140820190506145248284516144e3565b60018060a01b036020840151166080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015260c083015161012083015292915050565b5f60608284031215614580575f80fd5b50919050565b5f60608284031215614596575f80fd5b6110018383614570565b5f60408284031215614580575f80fd5b5f602082840312156145c0575f80fd5b81356001600160401b038111156145d5575f80fd5b613518848285016145a0565b5f602082840312156145f1575f80fd5b813561100181614406565b60a08101610cc3828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5f8060408385031215614646575f80fd5b823561465181614406565b946020939093013593505050565b5f6001600160401b03821115614677576146776142ef565b5060051b60200190565b5f82601f830112614690575f80fd5b813560206146a56146a08361465f565b6143d6565b8083825260208201915060208460051b8701019350868411156146c6575f80fd5b602086015b848110156146e257803583529183019183016146cb565b509695505050505050565b5f608082840312156146fd575f80fd5b61470561432c565b905081358152602082013561471981614425565b6020820152604082013561472c81614425565b604082015260608201356001600160401b03811115614749575f80fd5b61475584828501614681565b60608301525092915050565b5f60208284031215614771575f80fd5b81356001600160401b0380821115614787575f80fd5b908301906040828603121561479a575f80fd5b6147a261434e565b8235828111156147b0575f80fd5b6147bc878286016146ed565b825250602083013592506147cf83614406565b6020810192909252509392505050565b5f602082840312156147ef575f80fd5b5035919050565b5f805f8060808587031215614809575f80fd5b843561481481614406565b935060208501359250604085013561482b81614406565b9396929550929360600135925050565b5f6020828403121561484b575f80fd5b81356001600160401b03811115614860575f80fd5b820160808185031215611001575f80fd5b5f8060408385031215614882575f80fd5b82359150602083013561489481614406565b809150509250929050565b5f61016082840312156148b0575f80fd5b6148b8614370565b90506148c4838361443d565b81526101208201356148d581614406565b60208201526101408201356148e981614406565b604082015292915050565b5f6101608284031215614905575f80fd5b611001838361489f565b5f6060828403121561491f575f80fd5b614927614370565b905081358152602082013560208201526040820135604082015292915050565b5f60808284031215614957575f80fd5b61495f61434e565b614969848461490f565b8152606083013561497981614406565b60208201529392505050565b5f60208284031215614995575f80fd5b81356001600160801b0381168114611001575f80fd5b5f80604083850312156149bc575f80fd5b82356149c781614406565b91506020838101356001600160401b03808211156149e3575f80fd5b818601915086601f8301126149f6575f80fd5b813581811115614a0857614a086142ef565b614a1a601f8201601f191685016143d6565b91508082528784828501011115614a2f575f80fd5b80848401858401375f848284010152508093505050509250929050565b5f60408284031215614a5c575f80fd5b614a6461434e565b9050813581526020808301356001600160401b0380821115614a84575f80fd5b9084019060608287031215614a97575f80fd5b614a9f614370565b823582811115614aad575f80fd5b614ab988828601614681565b8252508383013582811115614acc575f80fd5b8301601f81018813614adc575f80fd5b8035614aea6146a08261465f565b81815260059190911b8201860190868101908a831115614b08575f80fd5b928701925b82841015614b2657833582529287019290870190614b0d565b84880152505050604083013582811115614b3e575f80fd5b614b4a88828601614681565b60408301525080848601525050505092915050565b5f60408284031215614b6f575f80fd5b614b7761434e565b905081356001600160401b03811115614b8e575f80fd5b614b9a84828501614a4c565b8252506020820135614bab81614406565b602082015292915050565b5f60208284031215614bc6575f80fd5b81356001600160401b03811115614bdb575f80fd5b61351884828501614b5f565b5f60408284031215614bf7575f80fd5b61100183836145a0565b5f60208284031215614c11575f80fd5b604051602081018181106001600160401b0382111715614c3357614c336142ef565b6040529135825250919050565b5f60608284031215614c50575f80fd5b614c58614370565b614c628484614c01565b81526020830135614c7281614406565b60208201526040830135614c8581614406565b60408201529392505050565b5f5b83811015614cab578181015183820152602001614c93565b50505f910152565b5f8151808452614cca816020860160208601614c91565b601f01601f19169290920160200192915050565b602081525f6110016020830184614cb3565b5f815180845260208085019450602084015f5b83811015614d1f57815187529582019590820190600101614d03565b509495945050505050565b805182525f602080830151604082860152805160606040870152614d5160a0870182614cf0565b83830151603f19888303810160608a0152815180845291860193505f929091908601905b80841015614d955784518252938601936001939093019290860190614d75565b5060408501519550818982030160808a0152614db18187614cf0565b9998505050505050505050565b602081525f825160a060208401528051608060c0850152614de3610140850182614d2a565b9050602082015160bf198583030160e0860152614e008282614d2a565b91505060408201516101008501526060820151151561012085015260208501519150614e3760408501836001600160a01b03169052565b6040850151606085015260608501516080850152608085015160a0850152809250505092915050565b5f60408284031215614e70575f80fd5b614e7861434e565b90508135614e8581614406565b81526020820135614bab81614425565b5f60608284031215614ea5575f80fd5b614ead61434e565b614eb78484614e60565b8152604083013561497981614406565b60808101610cc382846144e3565b5f60a08284031215614ee5575f80fd5b614eed614392565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f6101408284031215614f32575f80fd5b614f3a61434e565b9050614f468383614ed5565b8152614bab8360a08401614ed5565b5f6101608284031215614f66575f80fd5b614f6e61434e565b614f788484614f21565b815261014083013561497981614406565b5f61012082019050614f9c8284516144e3565b60208301516080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015292915050565b5f8060208385031215614fe6575f80fd5b82356001600160401b0380821115614ffc575f80fd5b818501915085601f83011261500f575f80fd5b81358181111561501d575f80fd5b8660208260051b8501011115615031575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561509857603f19888603018452615086858351614cb3565b9450928501929085019060010161506a565b5092979650505050505050565b5f6101408284031215614580575f80fd5b5f60e08284031215614580575f80fd5b5f6101208284031215614580575f80fd5b5f60c08284031215614580575f80fd5b5f805f805f8587036102808112156150fd575f80fd5b863561510881614406565b955061511788602089016150d7565b945060a060df198201121561512a575f80fd5b5060e08601925061513f8761018088016145a0565b915061514f876101c088016150d7565b90509295509295909350565b5f60208284031215614580575f80fd5b5f6020828403121561517b575f80fd5b611001838361515b565b5f60608284031215615195575f80fd5b61519d614370565b905081356151aa81614406565b81526020828101359082015260408201356148e981614406565b5f608082840312156151d4575f80fd5b6151dc61434e565b90506151e88383615185565b81526060820135614bab81614406565b5f60808284031215615208575f80fd5b61100183836151c4565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c0810151151560c083015260e081015160e0830152610100808201516112e4828501826001600160a01b03169052565b82815261014081016110016020830184615212565b5f608082840312156152a6575f80fd5b6152ae61432c565b905081516152bb81614406565b815260208201516152cb81614425565b80602083015250604082015160408201526060820151606082015292915050565b5f61014082840312156152fd575f80fd5b60405160e081018181106001600160401b038211171561531f5761531f6142ef565b60405261532c8484615296565b8152608083015161533c81614406565b8060208301525060a0830151604082015260c0830151606082015260e0830151608082015261010083015160a082015261012083015160c08201528091505092915050565b5f608082019050838252823560208301526020830135604083015260408301356153aa81614406565b6001600160a01b03166060929092019190915292915050565b828152604060208201525f8235601e198436030181126153e1575f80fd5b83016020810190356001600160401b038111156153fc575f80fd5b80360382131561540a575f80fd5b604080850152806080850152808260a08601375f60a082860101526020850135606085015260a0601f19601f830116850101925050509392505050565b5f60608284031215615457575f80fd5b6110018383615185565b828152604060208201525f8251604080840152805160808401526020810151151560a08401526040810151151560c084015260608101519050608060e08401526154af610100840182614cf0565b602094909401516001600160a01b031660609390930192909252509092915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610cc357610cc36154d1565b5f8261551257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60c08284031215615527575f80fd5b61552f6143b4565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015161556981614406565b60a08201529392505050565b5f60208284031215615585575f80fd5b5051919050565b5f610cc336836146ed565b5f610cc33683614a4c565b6155ad828251615212565b60208101516001600160a01b039081166101208401526040909101511661014090910152565b828152610180810161100160208301846155a2565b918252805180516020808501919091528082015160408086019190915290910151606084015201516001600160a01b0316608082015260a00190565b5f8151606084526156386060850182614cf0565b602084810151868303878301528051808452908201935090915f91908301905b808310156156785784518252938301936001929092019190830190615658565b506040860151935086810360408801526156928185614cf0565b979650505050505050565b5f8151604084528051604085015260208101519050604060608501526156c66080850182615624565b6020938401516001600160a01b0316949093019390935250919050565b828152604060208201525f613518604083018461569d565b5f6040828403121561570b575f80fd5b6110018383614e60565b5f61018082019050838252825161575b60208401825180518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602090810151805160c08501528082015160e0850152604081015161010085015260608101516101208501526080015161014084015292909201516001600160a01b031661016090910152919050565b5f60a082840312156157bb575f80fd5b6157c3614392565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6001600160401b0381168114610e3a575f80fd5b5f6040828403121561581d575f80fd5b61582561434e565b825161583081614406565b81526020830151614979816157f9565b5f60608201905083825282356020830152602083013561585f81614406565b6001600160a01b03166040929092019190915292915050565b5f60608284031215615888575f80fd5b611001838361490f565b5f61012082840312156158a3575f80fd5b6158ab6143b4565b6158b58484615296565b81526080830151602082015260a0830151604082015260c0830151606082015260e0830151608082015261010083015160a08201528091505092915050565b5f6101408284031215615905575f80fd5b6110018383614f21565b80358252602081013561592181614406565b6001600160a01b03908116602084015260408281013590840152606080830135908401526080808301359084015260a0828101359084015260c08201359061596882614406565b80821660c085015250505050565b8281526101008101611001602083018461590f565b5f806040838503121561599c575f80fd5b505080516020909101519092909150565b83815261012081016159c2602083018561590f565b82610100830152949350505050565b8281526080810161100160208301848035825260208082013590830152604090810135910152565b83815260a08101615a2160208301858035825260208082013590830152604090810135910152565b826080830152949350505050565b5f60208284031215615a3f575f80fd5b815161100181614425565b803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0810135615a8481614406565b6001600160a01b031660a0929092019190915250565b8035615aa581614406565b6001600160a01b031682526020810135615abe816157f9565b6001600160401b0381166020840152505050565b8035615add81614406565b6001600160a01b039081168352602082013590615af982614406565b9081166020840152604082013590615b1082614406565b9081166040840152606082013590615b2782614406565b9081166060840152608082013590615b3e82614406565b908116608084015260a082013590615b5582614406565b80821660a085015250505050565b8681526001600160a01b03861660208201526102a08101615b876040830187615a4a565b84356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152615bc96101a0830185615a9a565b6156926101e0830184615ad2565b8581526102808101615bec6020830187615a4a565b843560e08301526020850135610100830152604085013561012083015260608501356101408301526080850135610160830152615c2d610180830185615a9a565b613e816101c0830184615ad2565b82815260a081016110016020830184805180516001600160a01b0390811684526020808301518186015260409283015182169285019290925291015116606090910152565b5f60208284031215615c90575f80fd5b6110018383614c01565b600181815b80851115615cd457815f1904821115615cba57615cba6154d1565b80851615615cc757918102915b93841c9390800290615c9f565b509250929050565b5f82615cea57506001610cc3565b81615cf657505f610cc3565b8160018114615d0c5760028114615d1657615d32565b6001915050610cc3565b60ff841115615d2757615d276154d1565b50506001821b610cc3565b5060208310610133831016604e8410600b8410161715615d55575081810a610cc3565b615d5f8383615c9a565b805f1904821115615d7257615d726154d1565b029392505050565b5f6110018383615cdc565b8082028115828204841417610cc357610cc36154d1565b5f60208284031215615dac575f80fd5b815160ff81168114611001575f80fd5b5f61100160ff841683615cdc565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112615df3575f80fd5b8301803591506001600160401b03821115615e0c575f80fd5b602001915036819003821315615e20575f80fd5b9250929050565b80820180821115610cc357610cc36154d1565b60a081525f615e4c60a0830186615624565b90506001600160801b03845116602083015260208401516001600160401b0380821660408501528060408701511660608501525050826080830152949350505050565b5f8251615ea0818460208701614c91565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220db53e39fafeb6758e3bee5bcf6394daa189c06a50577b2f4276ae064a15c23fd64736f6c63430008170033", - "sourceMap": "4084:13278:279:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:202:83;;;;;;;;;;-1:-1:-1;3443:202:83;;;;;:::i;:::-;;:::i;:::-;;;470:14:495;;463:22;445:41;;433:2;418:18;3443:202:83;;;;;;;;6573:238:281;;;;;;;;;;-1:-1:-1;6573:238:281;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15208:256:279:-;;;;;;:::i;:::-;;:::i;:::-;;7146:259;;;;;;;;;;-1:-1:-1;7146:259:279;;;;;:::i;:::-;;:::i;4431:196:281:-;;;;;;;;;;-1:-1:-1;4431:196:281;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8525:180:279:-;;;;;;:::i;:::-;;:::i;5577:170:281:-;;;;;;;;;;-1:-1:-1;5577:170:281;;;;;:::i;:::-;;:::i;:::-;;;7795:25:495;;;7783:2;7768:18;5577:170:281;7649:177:495;15766:332:279;;;;;;:::i;:::-;;:::i;2657:172:281:-;;;;;;;;;;-1:-1:-1;2657:172:281;;;;;:::i;:::-;;:::i;5293:244::-;;;;;;;;;;;;;:::i;:::-;;;;10569:25:495;;;10625:2;10610:18;;10603:34;;;;10542:18;5293:244:281;10395:248:495;2865:125:281;;;;;;;;;;;;;:::i;:::-;;;;;;10903:13:495;;10885:32;;10973:4;10961:17;;;10955:24;10933:20;;;10926:54;11036:4;11024:17;;;11018:24;10996:20;;;10989:54;11099:4;11087:17;;;11081:24;11059:20;;;11052:54;11162:4;11150:17;;;11144:24;11122:20;;;11115:54;11245:3;11217:17;;;11211:24;-1:-1:-1;;;;;11207:50:495;11185:20;;;11178:80;;;;10872:3;10857:19;;10648:616;6289:248:281;;;;;;;;;;-1:-1:-1;6289:248:281;;;;;:::i;:::-;;:::i;4759:191:83:-;;;;;;;;;;-1:-1:-1;4759:191:83;;;;;:::i;:::-;;:::i;9029:186:279:-;;;;;;:::i;:::-;;:::i;5787:178:281:-;;;;;;;;;;-1:-1:-1;5787:178:281;;;;;:::i;:::-;;:::i;15496:234:279:-;;;;;;:::i;:::-;;:::i;5246:136:83:-;;;;;;;;;;-1:-1:-1;5246:136:83;;;;;:::i;:::-;;:::i;6348:245::-;;;;;;;;;;-1:-1:-1;6348:245:83;;;;;:::i;:::-;;:::i;9567:210:279:-;;;;;;:::i;:::-;;:::i;11856:484::-;;;;;;:::i;:::-;;:::i;14822:354::-;;;;;;:::i;:::-;;:::i;8121:116::-;;;;;;;;;;;;;:::i;7442:493::-;;;;;;;;;;-1:-1:-1;7442:493:279;;;;;:::i;:::-;;:::i;4161:214:87:-;;;;;;:::i;:::-;;:::i;10403:312:279:-;;;;;;:::i;:::-;;:::i;16850:190::-;;;;;;:::i;:::-;;:::i;3708:134:87:-;;;;;;;;;;;;;:::i;13547:304:279:-;;;;;;:::i;:::-;;:::i;9813:308::-;;;;;;:::i;:::-;;:::i;7126:86:281:-;;;;;;;;;;-1:-1:-1;7198:7:281;;;;;;;;;;;;-1:-1:-1;;;7198:7:281;;;;7126:86;;;;;;;:::i;2496:145:92:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2625:9:92;;;2496:145;;3966:425:281;;;;;;;;;;-1:-1:-1;3966:425:281;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5756:126:279:-;;;;;;;;;;;;;:::i;6005:244:281:-;;;;;;;;;;-1:-1:-1;6005:244:281;;;;;:::i;:::-;;:::i;3342:588::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3415:508:281;;;;;;;;3458:29;;3415:508;;3523:31;;3415:508;;;;3595:36;;-1:-1:-1;;;;;3595:36:281;;;3415:508;;;;;;;3668:32;;;;3415:508;;;;3782:26;;;;3415:508;;;;3840:27;;;;3415:508;;;;3892:20;;;;3415:508;;;;3728:23;;;;;3415:508;;;;;3342:588;;;;;24360:13:495;;24342:32;;24430:4;24418:17;;;24412:24;24390:20;;;24383:54;24472:17;;;24466:24;-1:-1:-1;;;;;24566:21:495;;;24544:20;;;24537:51;;;;24648:4;24636:17;;;24630:24;24626:33;;24604:20;;;24597:63;24720:4;24708:17;;;24702:24;24698:33;;24676:20;;;24669:63;24517:3;24780:17;;;24774:24;24770:33;;24748:20;;;24741:63;24864:4;24852:17;;;24846:24;24842:33;;24820:20;;;24813:63;24936:4;24924:17;;;24918:24;24914:33;;;24892:20;;;24885:63;;;;24329:3;24314:19;3342:588:281;24139:815:495;17076:284:279;;;;;;:::i;:::-;;:::i;5093:164:281:-;;;;;;;;;;-1:-1:-1;5093:164:281;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;16466:348:279:-;;;;;;:::i;:::-;;:::i;3026:128:281:-;;;;;;;;;;;;;:::i;:::-;;;;;;27709:4:495;27751:3;27740:9;27736:19;27728:27;;27788:6;27782:13;27771:9;27764:32;27852:4;27844:6;27840:17;27834:24;27827:4;27816:9;27812:20;27805:54;27915:4;27907:6;27903:17;27897:24;27890:4;27879:9;27875:20;27868:54;27978:4;27970:6;27966:17;27960:24;27953:4;27942:9;27938:20;27931:54;28041:4;28033:6;28029:17;28023:24;28016:4;28005:9;28001:20;27994:54;27525:529;;;;;3190:116:281;;;;;;;;;;;;;:::i;:::-;;;;28311:13:495;;-1:-1:-1;;;;;28307:39:495;28289:58;;28407:4;28395:17;;;28389:24;-1:-1:-1;;;;;28385:49:495;28363:20;;;28356:79;;;;28262:18;3190:116:281;28059:382:495;12372:184:279;;;;;;:::i;:::-;;:::i;11042:485::-;;;;;;:::i;:::-;;:::i;7972:112::-;;;;;;;;;;;;;:::i;14592:194::-;;;;;;:::i;:::-;;:::i;11559:261::-;;;;;;:::i;:::-;;:::i;3732:207:83:-;;;;;;;;;;-1:-1:-1;3732:207:83;;;;;:::i;:::-;;:::i;6847:243:281:-;;;;;;;;;;-1:-1:-1;6847:243:281;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2317:49:83:-;;;;;;;;;;-1:-1:-1;2317:49:83;2362:4;2317:49;;8274:219:279;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1819:58:87:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:87;;;;;4903:154:281;;;;;;;;;;-1:-1:-1;4903:154:281;;;;;:::i;:::-;;:::i;:::-;;;;;;31810:13:495;;-1:-1:-1;;;;;31806:39:495;31788:58;;31902:4;31890:17;;;31884:24;31862:20;;;31855:54;31965:4;31953:17;;;31947:24;31925:20;;;31918:54;32028:4;32016:17;;;32010:24;31988:20;;;31981:54;;;;31775:3;31760:19;;31577:464;4667:200:281;;;;;;;;;;-1:-1:-1;4667:200:281;;;;;:::i;:::-;;:::i;2302:122::-;;;;;;;;;;-1:-1:-1;2302:122:281;;;;;:::i;:::-;;:::i;16130:300:279:-;;;;;;:::i;:::-;;:::i;10153:214::-;;;;;;:::i;:::-;;:::i;5662:138:83:-;;;;;;;;;;-1:-1:-1;5662:138:83;;;;;:::i;:::-;;:::i;13883:677:279:-;;;;;;:::i;:::-;;:::i;12804:424::-;;;;;;:::i;:::-;;:::i;10747:259::-;;;;;;:::i;:::-;;:::i;2460:161:281:-;;;;;;;;;;-1:-1:-1;2460:161:281;;;;;:::i;:::-;;:::i;5059:661:279:-;;;;;;;;;;-1:-1:-1;5059:661:279;;;;;:::i;:::-;;:::i;12588:184::-;;;;;;:::i;:::-;;:::i;9251:284::-;;;;;;:::i;:::-;;:::i;8741:256::-;;;;;;:::i;:::-;;:::i;13260:251::-;;;;;;:::i;:::-;;:::i;3443:202:83:-;3528:4;-1:-1:-1;;;;;;3551:47:83;;-1:-1:-1;;;3551:47:83;;:87;;-1:-1:-1;;;;;;;;;;1134:40:94;;;3602:36:83;3544:94;3443:202;-1:-1:-1;;3443:202:83:o;6573:238:281:-;6693:46;;:::i;:::-;6762:42;;-1:-1:-1;;;6762:42:281;;:15;;:27;;:42;;6790:5;;6797:6;;6762:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15208:256:279:-;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;15380:34:279::2;::::0;-1:-1:-1;;;15380:34:279;;:26:::2;::::0;::::2;::::0;:34:::2;::::0;:5:::2;::::0;15407:6;;15380:34:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;15424:33:279::2;::::0;-1:-1:-1;;;15424:33:279;;:25:::2;::::0;-1:-1:-1;15424:25:279::2;::::0;-1:-1:-1;15424:33:279::2;::::0;:5:::2;::::0;15450:6;;15424:33:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;3437:20:93::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:93;3860:283;3437:20;15208:256:279;:::o;7146:259::-;2362:4:83;6331:26:279;2362:4:83;6346:10:279;6331:8;:26::i;:::-;6326:115;;6380:50;;-1:-1:-1;;;6380:50:279;;6413:10;6380:50;;;39929:51:495;39996:18;;;39989:34;;;39902:18;;6380:50:279;;;;;;;;6326:115;7321:34:::1;::::0;-1:-1:-1;;;7321:34:279;;:26:::1;::::0;::::1;::::0;:34:::1;::::0;:5:::1;::::0;7348:6;;7321:34:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7365:33:279::1;::::0;-1:-1:-1;;;7365:33:279;;:25:::1;::::0;-1:-1:-1;7365:25:279::1;::::0;-1:-1:-1;7365:33:279::1;::::0;:5:::1;::::0;7391:6;;7365:33:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7146:259:::0;;:::o;4431:196:281:-;4511:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4511:27:281;-1:-1:-1;;;;;;4557:43:281;:5;:43;;;:37;:43;;;;;;;;;4550:70;;;;;;;4557:63;;;4550:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4431:196::o;8525:180:279:-;8614:84;8632:65;;;;;;;;8665:6;8632:65;;;;;;;;;;:::i;:::-;;;8685:10;8632:65;;;;;8614:17;:84::i;5577:170:281:-;5667:7;5693:47;5667:7;5726:6;5734:5;5693:32;:47::i;:::-;5686:54;5577:170;-1:-1:-1;;;5577:170:281:o;15766:332:279:-;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;15982:50:279::2;::::0;-1:-1:-1;;;15982:50:279;;:34:::2;::::0;::::2;::::0;:50:::2;::::0;:5:::2;::::0;16017:14;;15982:50:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;16042:49:279::2;::::0;-1:-1:-1;;;16042:49:279;;:33:::2;::::0;-1:-1:-1;16042:33:279::2;::::0;-1:-1:-1;16042:49:279::2;::::0;:5:::2;::::0;16076:14;;16042:49:::2;;;:::i;2657:172:281:-:0;2744:7;2770:52;2744:7;2815:6;2770:44;:52::i;5293:244::-;5394:29;;5345:7;;;;5394:54;;5345:7;;5394:54;:::i;:::-;388:21:294;408:1;-1:-1:-1;;388:21:294;:::i;:::-;5462:31:281;;:58;;;;:::i;:::-;5373:157;;;;5293:244;;:::o;2865:125::-;2909:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2909:32:281;2960:23;;-1:-1:-1;;;2960:23:281;;:5;:23;;;7795:25:495;2960:21:281;;;;7768:18:495;;2960:23:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2953:30;;2865:125;:::o;6289:248::-;6466:64;;-1:-1:-1;;;6466:64:281;;6436:7;6466:64;;;43986:25:495;;;-1:-1:-1;;;;;44085:15:495;;;44065:18;;;44058:43;44117:18;;;44110:34;;;44180:15;;44160:18;;;44153:43;44212:19;;;44205:35;;;6436:7:281;6466:23;;;;43958:19:495;;6466:64:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6459:71;6289:248;-1:-1:-1;;;;;6289:248:281:o;4759:191:83:-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:83;;;;;:24;;;;4759:191::o;9029:186:279:-;9122:86;9141:66;;;;;;;;9175:6;9141:66;;;;;;;;;;:::i;:::-;;;9195:10;9141:66;;;;;9122:18;:86::i;5787:178:281:-;5881:7;5907:51;5881:7;5942:8;5952:5;5907:34;:51::i;15496:234:279:-;15613:110;15644:78;;;;;;;;15690:6;15644:78;;;:::i;:::-;;;15710:10;15644:78;;;;;15613:30;:110::i;5246:136:83:-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;:::-;;5246:136:::0;;;:::o;6348:245::-;-1:-1:-1;;;;;6441:34:83;;966:10:90;6441:34:83;6437:102;;6498:30;;-1:-1:-1;;;6498:30:83;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;:::-;;6348:245;;:::o;9567:210:279:-;9672:98;9697:72;;;;;;;;9737:6;9697:72;;;:::i;:::-;;;9757:10;9697:72;;;;;9672:24;:98::i;11856:484::-;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;12064:46:279::2;::::0;-1:-1:-1;;;12064:46:279;;:30:::2;::::0;::::2;::::0;:46:::2;::::0;:5:::2;::::0;12095:14;;12064:46:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;12120:45:279::2;::::0;-1:-1:-1;;;12120:45:279;;:29:::2;::::0;-1:-1:-1;12120:29:279::2;::::0;-1:-1:-1;12120:45:279::2;::::0;:5:::2;::::0;12150:14;;12120:45:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;-1:-1:-1::0;;12179:14:279::2;:21;;;:38;;;:53:::0;12175:159:::2;;12297:25;::::0;::::2;::::0;12248:75:::2;::::0;-1:-1:-1;;;12248:75:279;;:5:::2;:75;::::0;::::2;46201:25:495::0;-1:-1:-1;;;;;46262:32:495;;;46242:18;;;46235:60;12248:48:279::2;::::0;::::2;::::0;46174:18:495;;12248:75:279::2;45993:308:495::0;12175:159:279::2;3437:20:93::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:93;3860:283;14822:354:279;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;15039:25:279::2;::::0;::::2;::::0;6799:33:::2;::::0;-1:-1:-1;;;6799:33:279;;6767:29:::2;6799:33;::::0;::::2;46201:25:495::0;;;-1:-1:-1;;;;;46262:32:495;;46242:18;;;46235:60;6767:29:279;6799:21:::2;::::0;::::2;::::0;46174:18:495;;6799:33:279::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15080:40:::3;::::0;-1:-1:-1;;;15080:40:279;;6767:65;;-1:-1:-1;15080:24:279::3;::::0;::::3;::::0;:40:::3;::::0;:5:::3;::::0;15105:14;;15080:40:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;15130:39:279::3;::::0;-1:-1:-1;;;15130:39:279;;:23:::3;::::0;-1:-1:-1;15130:23:279::3;::::0;-1:-1:-1;15130:39:279::3;::::0;:5:::3;::::0;15154:14;;15130:39:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;6884:33:279::2;::::0;-1:-1:-1;;;6884:33:279;;6853:28:::2;6884:33;::::0;::::2;46201:25:495::0;;;-1:-1:-1;;;;;46262:32:495;;46242:18;;;46235:60;6853:28:279;-1:-1:-1;6884:21:279::2;::::0;-1:-1:-1;6884:21:279::2;::::0;46174:18:495;;6884:33:279::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6853:64;;6955:21;6931:20;:45;6927:176;;6999:93;::::0;-1:-1:-1;;;6999:93:279;;-1:-1:-1;;;;;47137:32:495;;6999:93:279::2;::::0;::::2;47119:51:495::0;47186:18;;;47179:34;;;47229:18;;;47222:34;;;47092:18;;6999:93:279::2;46917:345:495::0;6927:176:279::2;6757:352;;2008:1:92;3437:20:93::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:93;3860:283;8121:116:279;978:24:270;6331:26:279;6340:4;6346:10;6331:8;:26::i;:::-;6326:115;;6380:50;;-1:-1:-1;;;6380:50:279;;6413:10;6380:50;;;39929:51:495;39996:18;;;39989:34;;;39902:18;;6380:50:279;39755:274:495;6326:115:279;8220:10:::1;:8;:10::i;7442:493::-:0;3395:21:93;:19;:21::i;:::-;1048:37:270::1;6331:26:279;6340:4;6346:10;6331:8;:26::i;:::-;6326:115;;6380:50;::::0;-1:-1:-1;;;6380:50:279;;6413:10:::1;6380:50;::::0;::::1;39929:51:495::0;39996:18;;;39989:34;;;39902:18;;6380:50:279::1;39755:274:495::0;6326:115:279::1;7665:35:::0;;;-1:-1:-1;;;;;7710:48:279;;::::2;-1:-1:-1::0;;;;;;7768:70:279;;;;-1:-1:-1;;;7822:15:279::2;-1:-1:-1::0;;;;;7768:70:279::2;;;::::0;;;7853:75:::2;::::0;;7665:35;;;::::2;47494:34:495::0;;;47559:2;47544:18;;47537:43;;;;7890:10:279::2;::::0;7853:75:::2;::::0;47414:18:495;7853:75:279::2;;;;;;;7631:304;3426:1:93::1;3437:20:::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:93;3860:283;4161:214:87;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;10403:312:279:-;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;10609:45:279::2;::::0;-1:-1:-1;;;10609:45:279;;:29:::2;::::0;::::2;::::0;:45:::2;::::0;:5:::2;::::0;10639:14;;10609:45:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;10664:44:279::2;::::0;-1:-1:-1;;;10664:44:279;;:28:::2;::::0;-1:-1:-1;10664:28:279::2;::::0;-1:-1:-1;10664:44:279::2;::::0;:5:::2;::::0;10693:14;;10664:44:::2;;;:::i;16850:190::-:0;16947:86;16966:66;;;;;;;;17000:6;16966:66;;;;;;;;;;:::i;:::-;;;17020:10;16966:66;;;;;16947:18;:86::i;3708:134:87:-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:87;:::o;13547:304:279:-;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;13749:43:279::2;::::0;;-1:-1:-1;;;13749:43:279;;:5:::2;:43;::::0;::::2;49970:25:495::0;50037:13;;50031:20;50011:18;;;50004:48;50026:2;50087:15;;50081:22;-1:-1:-1;;;;;50177:21:495;;;50157:18;;;50150:49;50245:15;;;50239:22;50235:31;;;50215:18;;;50208:59;13749:27:279::2;::::0;::::2;::::0;49942:19:495;;13749:43:279::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;13802:42:279::2;::::0;;-1:-1:-1;;;13802:42:279;;:5:::2;:42;::::0;::::2;49970:25:495::0;50037:13;;50031:20;50011:18;;;50004:48;50026:2;50087:15;;50081:22;-1:-1:-1;;;;;50177:21:495;;;50157:18;;;50150:49;50245:15;;;50239:22;50235:31;;;50215:18;;;50208:59;13802:26:279::2;::::0;-1:-1:-1;13802:26:279::2;::::0;-1:-1:-1;49942:19:495;;13802:42:279::2;49663:610:495::0;9813:308:279;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;10017:44:279::2;::::0;-1:-1:-1;;;10017:44:279;;:28:::2;::::0;::::2;::::0;:44:::2;::::0;:5:::2;::::0;10046:14;;10017:44:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;10071:43:279::2;::::0;-1:-1:-1;;;10071:43:279;;:27:::2;::::0;-1:-1:-1;10071:27:279::2;::::0;-1:-1:-1;10071:43:279::2;::::0;:5:::2;::::0;10099:14;;10071:43:::2;;;:::i;3966:425:281:-:0;4041:15;;:::i;:::-;-1:-1:-1;;;;;;;;;;;4476:9:93;1991:1;4476:20;394:93:278;;446:30;;-1:-1:-1;;;446:30:278;;;;;;;;;;;394:93;4075:309:281::1;::::0;;-1:-1:-1;;;;;4104:22:281;::::1;-1:-1:-1::0;4104:22:281;;;:10:::1;:22;::::0;;;;;;;4075:309;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;4104:22;;4075:309;;;;;;;;;;;;;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;4075:309:281;;;;-1:-1:-1;;;4075:309:281;;-1:-1:-1;4075:309:281;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;;;;::::0;;;;;;;;-1:-1:-1;;;;;4075:309:281;;::::1;::::0;;::::1;::::0;;;4191:26;;:42;;-1:-1:-1;;;4191:42:281;;::::1;::::0;::::1;50866:51:495::0;;;;4075:309:281;;;;;4191:26;;::::1;::::0;:36:::1;::::0;50839:18:495;;4191:42:281::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4075:309:::0;;4267:27;;:43:::1;::::0;-1:-1:-1;;;4267:43:281;;-1:-1:-1;;;;;50884:32:495;;;4267:43:281::1;::::0;::::1;50866:51:495::0;4075:309:281::1;::::0;;::::1;::::0;4267:27;;::::1;::::0;:37:::1;::::0;50839:18:495;;4267:43:281::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4075:309:::0;;4337:20;;:36:::1;::::0;-1:-1:-1;;;4337:36:281;;-1:-1:-1;;;;;50884:32:495;;;4337:36:281::1;::::0;::::1;50866:51:495::0;4075:309:281::1;::::0;;::::1;::::0;4337:20;;::::1;::::0;:30:::1;::::0;50839:18:495;;4337:36:281::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4075:309:::0;;4068:316;-1:-1:-1;496:1:278::1;3966:425:281::0;;;:::o;5756:126:279:-;2362:4:83;3191:16;2362:4;3191:10;:16::i;:::-;5832:7:279::1;6355:30:86;6388:26;:24;:26::i;:::-;6429:15:::0;;;;-1:-1:-1;;;;6429:15:86;::::1;;;::::0;:44:::1;;-1:-1:-1::0;6448:14:86;;-1:-1:-1;;;;;6448:25:86;;::::1;:14:::0;::::1;:25;;6429:44;6425:105;;;6496:23;;-1:-1:-1::0;;;6496:23:86::1;;;;;;;;;;;6425:105;6539:24:::0;;-1:-1:-1;;6573:22:86;-1:-1:-1;;;;;6539:24:86;::::1;6573:22:::0;-1:-1:-1;;;6573:22:86::1;::::0;;5851:24:279::2;:22;:24::i;:::-;6616:23:86::0;;-1:-1:-1;;;;6616:23:86::1;::::0;;6654:20:::1;::::0;-1:-1:-1;;;;;51090:31:495;;51072:50;;6654:20:86::1;::::0;51060:2:495;51045:18;6654:20:86::1;;;;;;;6289:392;3217:1:83;5756:126:279::0;:::o;6005:244:281:-;6180:62;;-1:-1:-1;;;6180:62:281;;6150:7;6180:62;;;43986:25:495;;;-1:-1:-1;;;;;44085:15:495;;;44065:18;;;44058:43;44117:18;;;44110:34;;;44180:15;;44160:18;;;44153:43;44212:19;;;44205:35;;;6150:7:281;6180:21;;;;43958:19:495;;6180:62:281;43693:553:495;17076:284:279;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;17268:38:279::2;::::0;-1:-1:-1;;;17268:38:279;;:5:::2;:38;::::0;::::2;51430:25:495::0;51474:13;;51565:9;;-1:-1:-1;;;;;51561:18:495;;;51541;;;51534:46;51556:2;51636:11;;;51630:18;51623:26;51616:34;51596:18;;;51589:62;51697:15;;;51691:22;51687:31;51667:18;;;51660:59;17268:22:279::2;::::0;::::2;::::0;51402:19:495;;17268:38:279::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;17316:37:279::2;::::0;-1:-1:-1;;;17316:37:279;;:5:::2;:37;::::0;::::2;51430:25:495::0;51474:13;;51565:9;;-1:-1:-1;;;;;51561:18:495;;;51541;;;51534:46;51556:2;51636:11;;;51630:18;51623:26;51616:34;51596:18;;;51589:62;51697:15;;;51691:22;51687:31;51667:18;;;51660:59;17316:21:279::2;::::0;-1:-1:-1;17316:21:279::2;::::0;-1:-1:-1;51402:19:495;;17316:37:279::2;51133:592:495::0;5093:164:281;5169:21;;:::i;:::-;5209:41;;-1:-1:-1;;;5209:41:281;;:5;:41;;;10569:25:495;10610:18;;;10603:34;;;5209:23:281;;;;10542:18:495;;5209:41:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5202:48;;;;;;;;;;-1:-1:-1;;;;;5202:48:281;;;;-1:-1:-1;;;5202:48:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5093:164:281:o;16466:348:279:-;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;16690:54:279::2;::::0;-1:-1:-1;;;16690:54:279;;:38:::2;::::0;::::2;::::0;:54:::2;::::0;:5:::2;::::0;16729:14;;16690:54:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;16754:53:279::2;::::0;-1:-1:-1;;;16754:53:279;;:37:::2;::::0;-1:-1:-1;16754:37:279::2;::::0;-1:-1:-1;16754:53:279::2;::::0;:5:::2;::::0;16792:14;;16754:53:::2;;;:::i;3026:128:281:-:0;3071:33;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3071:33:281;3123:24;;-1:-1:-1;;;3123:24:281;;:5;:24;;;7795:25:495;3123:22:281;;;;7768:18:495;;3123:24:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3190:116::-;-1:-1:-1;;;;;;;;;;;;;;;;;3279:20:281;;-1:-1:-1;;;3279:20:281;;:5;:20;;;7795:25:495;3279:18:281;;;;7768::495;;3279:20:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12372:184:279:-;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;12486:27:279::2;::::0;-1:-1:-1;;;12486:27:279;;:19:::2;::::0;::::2;::::0;:27:::2;::::0;:5:::2;::::0;12506:6;;12486:27:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;12523:26:279::2;::::0;-1:-1:-1;;;12523:26:279;;:18:::2;::::0;-1:-1:-1;12523:18:279::2;::::0;-1:-1:-1;12523:26:279::2;::::0;:5:::2;::::0;12542:6;;12523:26:::2;;;:::i;11042:485::-:0;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;11248:45:279::2;::::0;-1:-1:-1;;;11248:45:279;;:29:::2;::::0;::::2;::::0;:45:::2;::::0;:5:::2;::::0;11278:14;;11248:45:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;11303:44:279::2;::::0;-1:-1:-1;;;11303:44:279;;:28:::2;::::0;-1:-1:-1;11303:28:279::2;::::0;-1:-1:-1;11303:44:279::2;::::0;:5:::2;::::0;11332:14;;11303:44:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;-1:-1:-1::0;;11361:14:279::2;:21;;;:38;;;:53:::0;11357:164:::2;;11479:21:::0;;:30;11430:80:::2;::::0;-1:-1:-1;;;11430:80:279;;:5:::2;:80;::::0;::::2;46201:25:495::0;-1:-1:-1;;;;;46262:32:495;;;46242:18;;;46235:60;11430:48:279::2;::::0;::::2;::::0;46174:18:495;;11430:80:279::2;45993:308:495::0;7972:112:279;978:24:270;6331:26:279;6340:4;6346:10;6331:8;:26::i;:::-;6326:115;;6380:50;;-1:-1:-1;;;6380:50:279;;6413:10;6380:50;;;39929:51:495;39996:18;;;39989:34;;;39902:18;;6380:50:279;39755:274:495;6326:115:279;8069:8:::1;:6;:8::i;14592:194::-:0;14689:90;14710:68;;;;;;;;14746:6;14710:68;;;;;;;;;;:::i;:::-;;;14766:10;14710:68;;;;;14689:20;:90::i;11559:261::-;11666:147;11706:97;;;;;;;;11748:6;11706:97;;;;11768:10;-1:-1:-1;;;;;11706:97:279;;;;;11791:10;-1:-1:-1;;;;;11706:97:279;;;;11666:26;:147::i;3732:207:83:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:83;;;;;;;;-1:-1:-1;;;;;3901:31:83;;;;;;;;;;;;;;;3732:207::o;6847:243:281:-;6969:48;;:::i;:::-;7040:43;;-1:-1:-1;;;7040:43:281;;:16;;:28;;:43;;7069:5;;7076:6;;7040:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8274:219:279:-;8416:22;1979:19:92;:17;:19::i;:::-;8464:22:279::1;:5;8480::::0;;8464:15:::1;:22::i;4903:154:281:-:0;4975:19;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4975:19:281;5013:37;;-1:-1:-1;;;5013:37:281;;:5;:37;;;10569:25:495;10610:18;;;10603:34;;;5013:21:281;;;;10542:18:495;;5013:37:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5006:44;;;;;;;;;;-1:-1:-1;;;;;5006:44:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4903:154;-1:-1:-1;;4903:154:281:o;4667:200::-;4749:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4749:27:281;-1:-1:-1;;;;;;4795:43:281;:5;:43;;;:37;:43;;;;;;;;;4788:72;;;;;;;4795:65;;;4788:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4667:200::o;2302:122::-;2390:27;;-1:-1:-1;;;2390:27:281;;2364:7;2390:27;;;46201:25:495;;;-1:-1:-1;;;;;46262:32:495;;46242:18;;;46235:60;2364:7:281;2390:21;;;;46174:18:495;;2390:27:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16130:300:279:-;16283:140;16331:82;;;;;;;;16381:6;16331:82;;;;;;;;;;:::i;:::-;;;16401:10;16331:82;;;;;16283:34;:140::i;10153:214::-;10260:100;10286:73;;;;;;;;10327:6;10286:73;;;:::i;:::-;;;10347:10;10286:73;;;;;10260:25;:100::i;5662:138:83:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;13883:677:279:-:0;14132:39;14173:35;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;921:24:270::2;6331:26:279;6340:4;6346:10;6331:8;:26::i;:::-;6326:115;;6380:50;::::0;-1:-1:-1;;;6380:50:279;;6413:10:::2;6380:50;::::0;::::2;39929:51:495::0;39996:18;;;39989:34;;;39902:18;;6380:50:279::2;39755:274:495::0;6326:115:279::2;14224:46:::3;::::0;-1:-1:-1;;;14224:46:279;;:38:::3;::::0;::::3;::::0;:46:::3;::::0;:5:::3;::::0;14263:6;;14224:46:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;14345:45:279::3;::::0;-1:-1:-1;;;14345:45:279;;:37:::3;::::0;-1:-1:-1;14345:37:279::3;::::0;-1:-1:-1;14345:45:279::3;::::0;:5:::3;::::0;14383:6;;14345:45:::3;;;:::i;:::-;;::::0;::::3;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14280:110:::0;;-1:-1:-1;14280:110:279;-1:-1:-1;14400:48:279::3;;:5;14449:15;::::0;;;::::3;::::0;::::3;;:::i;:::-;14400:65;::::0;-1:-1:-1;;;;;;14400:65:279::3;::::0;;;;;;::::3;::::0;::::3;46201:25:495::0;;;;-1:-1:-1;;;;;46262:32:495;46242:18;;;46235:60;46174:18;;14400:65:279::3;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;14475:78:279::3;::::0;-1:-1:-1;;;14475:78:279;;:37:::3;::::0;-1:-1:-1;14475:37:279::3;::::0;-1:-1:-1;14475:78:279::3;::::0;:5:::3;::::0;14513:6;;14521:31;;14475:78:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;2008:1:92::2;3437:20:93::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:93;3860:283;3437:20;13883:677:279;;;:::o;12804:424::-;12973:39;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;13028:31:279::2;::::0;-1:-1:-1;;;13028:31:279;;:23:::2;::::0;::::2;::::0;:31:::2;::::0;:5:::2;::::0;13052:6;;13028:31:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;13103:30:279::2;::::0;-1:-1:-1;;;13103:30:279;;:22:::2;::::0;-1:-1:-1;13103:22:279::2;::::0;-1:-1:-1;13103:30:279::2;::::0;:5:::2;::::0;13126:6;;13103:30:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13143:78;::::0;-1:-1:-1;;;13143:78:279;;13069:64;;-1:-1:-1;13143:37:279::2;::::0;::::2;::::0;:78:::2;::::0;:5:::2;::::0;13181:6;;13069:64;;13143:78:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;3437:20:93::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:93;3860:283;10747:259:279;10854:145;10893:96;;;;;;;;10934:6;10893:96;;;;;;;;;;:::i;:::-;;;10954:10;10893:96;;;;;;;;;;;10854:25;:145::i;2460:161:281:-;2566:48;;-1:-1:-1;;;2566:48:281;;2543:4;2566:48;;;10569:25:495;;;10610:18;;;10603:34;;;2543:4:281;2566:32;;;;10542:18:495;;2566:48:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5059:661:279:-;4158:30:86;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:86;-1:-1:-1;;;4302:15:86;;;4301:16;;-1:-1:-1;;;;;4348:14:86;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:86;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:86;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:86;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:86;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:86;-1:-1:-1;;;5011:22:86;;;4977:67;5316:43:279::1;::::0;-1:-1:-1;;;5316:43:279;;:24:::1;::::0;::::1;::::0;:43:::1;::::0;:5:::1;::::0;5341;;5348:1;;5351;;5354;;5357;;5316:43:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5370:22;:20;:22::i;:::-;5402:17;:15;:17::i;:::-;5429:24;:22;:24::i;:::-;5463;:22;:24::i;:::-;5498:35;::::0;-1:-1:-1;;;5498:35:279;;:23:::1;::::0;::::1;::::0;:35:::1;::::0;:5:::1;::::0;5522:1;;5525;;5528;;5531;;5498:35:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5543:37;2362:4:83;5554:18:279::0;::::1;5574:5;5543:10;:37::i;:::-;;5590:30;978:24:270;5614:5:279;5590:10;:30::i;:::-;;5630;921:24:270;5654:5:279;5630:10;:30::i;:::-;;5670:43;1048:37:270;5707:5:279;5670:10;:43::i;:::-;;5068:14:86::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:86;;;5140:14;;-1:-1:-1;51072:50:495;;5140:14:86;;51060:2:495;51045:18;5140:14:86;;;;;;;5064:101;4092:1079;;;;;5059:661:279;;;;;:::o;12588:184::-;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;12702:27:279::2;::::0;-1:-1:-1;;;12702:27:279;;:5:::2;:27;::::0;::::2;65352:25:495::0;65413:20;;65393:18;;;65386:48;12702:19:279::2;::::0;::::2;::::0;65325:18:495;;12702:27:279::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;12739:26:279::2;::::0;-1:-1:-1;;;12739:26:279;;:5:::2;:26;::::0;::::2;65352:25:495::0;65413:20;;65393:18;;;65386:48;12739:18:279::2;::::0;-1:-1:-1;12739:18:279::2;::::0;-1:-1:-1;65325:18:495;;12739:26:279::2;65080:360:495::0;9251:284:279;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;9443:38:279::2;::::0;-1:-1:-1;;;9443:38:279;;:22:::2;::::0;::::2;::::0;:38:::2;::::0;:5:::2;::::0;9466:14;;9443:38:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;9491:37:279::2;::::0;-1:-1:-1;;;9491:37:279;;:21:::2;::::0;-1:-1:-1;9491:21:279::2;::::0;-1:-1:-1;9491:37:279::2;::::0;:5:::2;::::0;9513:14;;9491:37:::2;;;:::i;8741:256::-:0;3395:21:93;:19;:21::i;:::-;1979:19:92::1;:17;:19::i;:::-;8923:29:279::2;::::0;-1:-1:-1;;;8923:29:279;;:21:::2;::::0;::::2;::::0;:29:::2;::::0;:5:::2;::::0;8945:6;;8923:29:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;8962:28:279::2;::::0;-1:-1:-1;;;8962:28:279;;:20:::2;::::0;-1:-1:-1;8962:20:279::2;::::0;-1:-1:-1;8962:28:279::2;::::0;:5:::2;::::0;8983:6;;8962:28:::2;;;:::i;13260:251::-:0;13363:141;13400:94;;;;;;;;13439:6;13400:94;;;;;;;;;;:::i;:::-;;;13459:10;13400:94;;;;;;;;;;;13363:23;:141::i;3470:384:93:-;-1:-1:-1;;;;;;;;;;;3670:9:93;;-1:-1:-1;;3670:20:93;3666:88;;3713:30;;-1:-1:-1;;;3713:30:93;;;;;;;;;;;3666:88;1991:1;3828:19;;3470:384::o;2709:128:92:-;-1:-1:-1;;;;;;;;;;;2625:9:92;;;2770:61;;;2805:15;;-1:-1:-1;;;2805:15:92;;;;;;;;;;;2770:61;2709:128::o;3860:283:93:-;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:93;3860:283::o;5888:370:279:-;5960:4;5980:22;5988:4;5994:7;5980;:22::i;:::-;5976:276;;;-1:-1:-1;6025:4:279;6018:11;;5976:276;6058:22;;-1:-1:-1;;;;;6058:22:279;6046:206;;-1:-1:-1;6118:5:279;6111:12;;6046:206;6194:22;;6161:80;;-1:-1:-1;;;6161:80:279;;;;;46201:25:495;;;-1:-1:-1;;;;;46262:32:495;;;46242:18;;;46235:60;6194:22:279;;;;6161:65;;46174:18:495;;6161:80:279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6154:87;;;;4925:255:297;-1:-1:-1;;;;;5133:22:297;;5058:11;5133:22;;;:10;;;:22;;;;;;;;5092:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5120:5;;5127:4;;5133:22;5092:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5167:5;5092:27;:81::i;:::-;5085:88;4925:255;-1:-1:-1;;;;4925:255:297:o;1087:477:291:-;1228:29;1297:260;1348:5;:12;;:22;;;;;;;;;;-1:-1:-1;;;;;1348:22:291;-1:-1:-1;;;;;1348:31:291;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1342:39;;:2;:39;:::i;:::-;1324:57;;:15;:57;:::i;:::-;1401:36;;;;:47;;;-1:-1:-1;;;1401:47:291;;;;-1:-1:-1;;;;;1401:36:291;;;;:45;;:47;;;;;;;;;;;;;;;:36;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1395:53;;:2;:53;:::i;:::-;1504:32;;;;:43;;;-1:-1:-1;;;1504:43:291;;;;-1:-1:-1;;;;;1504:32:291;;;;:41;;:43;;;;;;;;;;;;;;;:32;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1498:49;;:2;:49;:::i;:::-;1462:12;;;:22;:33;;;-1:-1:-1;;;1462:33:291;;;;-1:-1:-1;;;;;1462:22:291;;;;:31;;:33;;;;;;;;;;;;;;;:22;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:85;;;;:::i;:::-;1297:13;:260::i;4660:259:297:-;-1:-1:-1;;;;;4870:22:297;;4795:11;4870:22;;;:10;;;:22;;;;;;;;4829:83;;;;;;;4870:34;;;4829:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4857:5;;4864:4;;4829:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4906:5;4829:27;:83::i;4148:103:83:-;4214:30;4225:4;966:10:90;4214::83;:30::i;7270:387::-;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:83;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:83;;;;;;;;;:38;;-1:-1:-1;;7475:38:83;7509:4;7475:38;;;7559:12;966:10:90;;887:96;7559:12:83;-1:-1:-1;;;;;7532:40:83;7550:7;-1:-1:-1;;;;;7532:40:83;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7894:388;7972:4;-1:-1:-1;;;;;;;;;;;8061:22:83;8069:4;8075:7;8061;:22::i;:::-;8057:219;;;8133:5;8099:14;;;;;;;;;;;-1:-1:-1;;;;;8099:31:83;;;;;;;;;;:39;;-1:-1:-1;;8099:39:83;;;8157:40;966:10:90;;8099:14:83;;8157:40;;8133:5;8157:40;8218:4;8211:11;;;;;3478:178:92;2226:16;:14;:16::i;:::-;-1:-1:-1;;;;;;;;;;;3595:17:92;;-1:-1:-1;;3595:17:92::1;::::0;;3627:22:::1;966:10:90::0;3636:12:92::1;3627:22;::::0;-1:-1:-1;;;;;50884:32:495;;;50866:51;;50854:2;50839:18;3627:22:92::1;;;;;;;3526:130;3478:178::o:0;4578:312:87:-;4658:4;-1:-1:-1;;;;;4667:6:87;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:87;:32;-1:-1:-1;;;;;;;;;;;1519:53:110;-1:-1:-1;;;;;1519:53:110;;1441:138;4728:32:87;-1:-1:-1;;;;;4728:42:87;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:87;;;;;;;;;;;6464:151:279;2362:4:83;6331:26:279;2362:4:83;6346:10:279;6331:8;:26::i;:::-;6326:115;;6380:50;;-1:-1:-1;;;6380:50:279;;6413:10;6380:50;;;39929:51:495;39996:18;;;39989:34;;;39902:18;;6380:50:279;39755:274:495;6032:538:87;6149:17;-1:-1:-1;;;;;6131:50:87;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:87;;;;;;;;-1:-1:-1;;6131:52:87;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:87;;-1:-1:-1;;;;;50884:32:495;;6493:60:87;;;50866:51:495;50839:18;;6493:60:87;50720:203:495;6127:437:87;-1:-1:-1;;;;;;;;;;;6225:40:87;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:87;;;;;7795:25:495;;;7768:18;;6292:34:87;7649:177:495;6221:120:87;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:87;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:87;;;;;;;;;;;9071:205:86;9129:30;;3147:66;9186:27;8819:122;2684:111:93;6929:20:86;:18;:20::i;:::-;2754:34:93::1;:32;:34::i;3170:176:92:-:0;1979:19;:17;:19::i;:::-;-1:-1:-1;;;;;;;;;;;3288:16:92;;-1:-1:-1;;3288:16:92::1;3300:4;3288:16;::::0;;3319:20:::1;966:10:90::0;3326:12:92::1;887:96:90::0;1176:291:296;1251:22;1307:4;-1:-1:-1;;;;;1295:24:296;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1285:34;;1334:9;1329:132;1349:15;;;1329:132;;;1398:52;1435:4;1442;;1447:1;1442:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1398:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1398:28:296;;-1:-1:-1;;;1398:52:296:i;:::-;1385:7;1393:1;1385:10;;;;;;;;:::i;:::-;;;;;;;;;;:65;1366:3;;1329:132;;;;1176:291;;;;;:::o;3231:65:83:-;6929:20:86;:18;:20::i;5186:971:297:-;5350:11;5381:5;5390:1;5381:10;5377:67;;5414:19;;-1:-1:-1;;;5414:19:297;;;;;;;;;;;5377:67;5457:18;5464:10;5457:6;:18::i;:::-;5453:82;;;5498:26;;-1:-1:-1;;;5498:26:297;;-1:-1:-1;;;;;50884:32:495;;5498:26:297;;;50866:51:495;50839:18;;5498:26:297;50720:203:495;5453:82:297;5574:21;;5548:23;5566:5;5548:15;:23;:::i;:::-;:47;5544:174;;;5660:23;5678:5;5660:15;:23;:::i;:::-;5685:21;;5618:89;;-1:-1:-1;;;5618:89:297;;;;;10569:25:495;;;;10610:18;;;10603:34;10542:18;;5618:89:297;10395:248:495;5544:174:297;5772:311;;;;;;;;5839:35;;;;-1:-1:-1;;;;;5839:35:297;;5772:311;;-1:-1:-1;;;;;;;;5921:44:297;;;;5772:311;;;;;;;;-1:-1:-1;;;6020:52:297;;;;5772:311;;;;6100:28;;;:50;;-1:-1:-1;;;6100:50:297;;5772:311;;6100:35;;;;:50;;5772:311;;6144:5;;6100:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6093:57;5186:971;-1:-1:-1;;;;;;5186:971:297:o;618:142:295:-;692:7;718:35;745:1;748;751;718:26;:35::i;4381:197:83:-;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:83;;-1:-1:-1;;;;;39947:32:495;;4514:47:83;;;39929:51:495;39996:18;;;39989:34;;;39902:18;;4514:47:83;39755:274:495;2909:126:92;-1:-1:-1;;;;;;;;;;;2625:9:92;;;2967:62;;3003:15;;-1:-1:-1;;;3003:15:92;;;;;;;;;;;2264:344:110;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:110;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;7082:141:86:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:86;;;;;;;;;;;2801:183:93;6929:20:86;:18;:20::i;3916:253:125:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:125;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;1572:148:297:-;1658:15;;1635:4;;1658:20;:55;;;;;1682:31;:4;:22;;;:29;:31::i;25271:508:175:-;25345:9;25568:1;25564;25560:6;25556:14;25553:1;25550:21;25547:1;25543:29;25536:37;25533:1;25529:45;25519:169;;25607:10;25601:4;25594:24;25669:4;25663;25656:18;25519:169;-1:-1:-1;25749:9:175;;25724:17;;;25717:25;25710:33;25745:17;;;25706:57;;25271:508::o;1671:281:110:-;1748:17;-1:-1:-1;;;;;1748:29:110;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:110;;-1:-1:-1;;;;;50884:32:495;;1805:47:110;;;50866:51:495;50839:18;;1805:47:110;50720:203:495;1744:119:110;-1:-1:-1;;;;;;;;;;;1872:73:110;;-1:-1:-1;;;;;;1872:73:110;-1:-1:-1;;;;;1872:73:110;;;;;;;;;;1671:281::o;6113:122::-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:110;;;;;;;;;;;8485:120:86;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:86;;;;;;-1:-1:-1;8485:120:86:o;4437:582:125:-;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;:::-;4605:408;;;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:125;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:125;;-1:-1:-1;;;;;50884:32:495;;4933:24:125;;;50866:51:495;50839:18;;4933:24:125;50720:203:495;4853:119:125;-1:-1:-1;4992:10:125;4985:17;;1495:183:299;1581:11;;:18;1558:4;;1581:23;:48;;;;-1:-1:-1;1608:9:299;;;;:16;:21;1581:48;:90;;;;-1:-1:-1;;1633:26:299;;;:33;:38;;1495:183::o;5559:487:125:-;5690:17;;:21;5686:354;;5887:10;5881:17;5943:15;5930:10;5926:2;5922:19;5915:44;5686:354;6010:19;;-1:-1:-1;;;6010:19:125;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:286:495:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:495;;209:43;;199:71;;266:1;263;256:12;497:127;558:10;553:3;549:20;546:1;539:31;589:4;586:1;579:15;613:4;610:1;603:15;629:255;701:2;695:9;743:6;731:19;;-1:-1:-1;;;;;765:34:495;;801:22;;;762:62;759:88;;;827:18;;:::i;:::-;863:2;856:22;629:255;:::o;889:253::-;961:2;955:9;1003:4;991:17;;-1:-1:-1;;;;;1023:34:495;;1059:22;;;1020:62;1017:88;;;1085:18;;:::i;1147:257::-;1219:4;1213:11;;;1251:17;;-1:-1:-1;;;;;1283:34:495;;1319:22;;;1280:62;1277:88;;;1345:18;;:::i;1409:253::-;1481:2;1475:9;1523:4;1511:17;;-1:-1:-1;;;;;1543:34:495;;1579:22;;;1540:62;1537:88;;;1605:18;;:::i;1667:253::-;1739:2;1733:9;1781:4;1769:17;;-1:-1:-1;;;;;1801:34:495;;1837:22;;;1798:62;1795:88;;;1863:18;;:::i;1925:252::-;1997:2;1991:9;2039:3;2027:16;;-1:-1:-1;;;;;2058:34:495;;2094:22;;;2055:62;2052:88;;;2120:18;;:::i;2182:275::-;2253:2;2247:9;2318:2;2299:13;;-1:-1:-1;;2295:27:495;2283:40;;-1:-1:-1;;;;;2338:34:495;;2374:22;;;2335:62;2332:88;;;2400:18;;:::i;:::-;2436:2;2429:22;2182:275;;-1:-1:-1;2182:275:495:o;2462:131::-;-1:-1:-1;;;;;2537:31:495;;2527:42;;2517:70;;2583:1;2580;2573:12;2598:134;2666:20;;2695:31;2666:20;2695:31;:::i;2737:118::-;2823:5;2816:13;2809:21;2802:5;2799:32;2789:60;;2845:1;2842;2835:12;2860:128;2925:20;;2954:28;2925:20;2954:28;:::i;2993:798::-;3061:5;3109:6;3097:9;3092:3;3088:19;3084:32;3081:52;;;3129:1;3126;3119:12;3081:52;3151:22;;:::i;:::-;3142:31;;3196:29;3215:9;3196:29;:::i;:::-;3189:5;3182:44;3286:2;3275:9;3271:18;3258:32;3253:2;3246:5;3242:14;3235:56;3351:2;3340:9;3336:18;3323:32;3318:2;3311:5;3307:14;3300:56;3416:2;3405:9;3401:18;3388:32;3383:2;3376:5;3372:14;3365:56;3482:3;3471:9;3467:19;3454:33;3448:3;3441:5;3437:15;3430:58;3549:3;3538:9;3534:19;3521:33;3515:3;3508:5;3504:15;3497:58;3588:36;3619:3;3608:9;3604:19;3588:36;:::i;:::-;3582:3;3575:5;3571:15;3564:61;3686:3;3675:9;3671:19;3658:33;3652:3;3645:5;3641:15;3634:58;3711:3;3746:38;3780:2;3769:9;3765:18;3746:38;:::i;:::-;3730:14;;;3723:62;3734:5;2993:798;-1:-1:-1;;2993:798:495:o;3796:258::-;3896:6;3949:3;3937:9;3928:7;3924:23;3920:33;3917:53;;;3966:1;3963;3956:12;3917:53;3989:59;4040:7;4029:9;3989:59;:::i;4168:309::-;4252:12;;-1:-1:-1;;;;;4248:38:495;4236:51;;4350:4;4339:16;;;4333:23;4326:31;4319:39;4303:14;;;4296:63;4408:4;4397:16;;;4391:23;4375:14;;;4368:47;4464:4;4453:16;;;4447:23;4431:14;;4424:47;4168:309::o;4482:705::-;4660:4;4702:3;4691:9;4687:19;4679:27;;4715:58;4763:9;4754:6;4748:13;4715:58;:::i;:::-;4858:1;4854;4849:3;4845:11;4841:19;4833:4;4825:6;4821:17;4815:24;4811:50;4804:4;4793:9;4789:20;4782:80;4918:4;4910:6;4906:17;4900:24;4893:4;4882:9;4878:20;4871:54;4981:4;4973:6;4969:17;4963:24;4956:4;4945:9;4941:20;4934:54;5044:4;5036:6;5032:17;5026:24;5019:4;5008:9;5004:20;4997:54;5109:4;5101:6;5097:17;5091:24;5082:6;5071:9;5067:22;5060:56;5174:4;5166:6;5162:17;5156:24;5147:6;5136:9;5132:22;5125:56;4482:705;;;;:::o;5192:166::-;5263:5;5308:2;5299:6;5294:3;5290:16;5286:25;5283:45;;;5324:1;5321;5314:12;5283:45;-1:-1:-1;5346:6:495;5192:166;-1:-1:-1;5192:166:495:o;5363:262::-;5462:6;5515:2;5503:9;5494:7;5490:23;5486:32;5483:52;;;5531:1;5528;5521:12;5483:52;5554:65;5611:7;5600:9;5554:65;:::i;5630:166::-;5701:5;5746:2;5737:6;5732:3;5728:16;5724:25;5721:45;;;5762:1;5759;5752:12;5801:380;5900:6;5953:2;5941:9;5932:7;5928:23;5924:32;5921:52;;;5969:1;5966;5959:12;5921:52;6009:9;5996:23;-1:-1:-1;;;;;6034:6:495;6031:30;6028:50;;;6074:1;6071;6064:12;6028:50;6097:78;6167:7;6158:6;6147:9;6143:22;6097:78;:::i;6186:247::-;6245:6;6298:2;6286:9;6277:7;6273:23;6269:32;6266:52;;;6314:1;6311;6304:12;6266:52;6353:9;6340:23;6372:31;6397:5;6372:31;:::i;6772:290::-;6986:3;6971:19;;6999:57;6975:9;7038:6;6530:5;6524:12;6519:3;6512:25;6586:4;6579:5;6575:16;6569:23;6562:4;6557:3;6553:14;6546:47;6642:4;6635:5;6631:16;6625:23;6618:4;6613:3;6609:14;6602:47;6698:4;6691:5;6687:16;6681:23;6674:4;6669:3;6665:14;6658:47;6754:4;6747:5;6743:16;6737:23;6730:4;6725:3;6721:14;6714:47;;;6438:329;7329:315;7397:6;7405;7458:2;7446:9;7437:7;7433:23;7429:32;7426:52;;;7474:1;7471;7464:12;7426:52;7513:9;7500:23;7532:31;7557:5;7532:31;:::i;:::-;7582:5;7634:2;7619:18;;;;7606:32;;-1:-1:-1;;;7329:315:495:o;7831:183::-;7891:4;-1:-1:-1;;;;;7916:6:495;7913:30;7910:56;;;7946:18;;:::i;:::-;-1:-1:-1;7991:1:495;7987:14;8003:4;7983:25;;7831:183::o;8019:668::-;8073:5;8126:3;8119:4;8111:6;8107:17;8103:27;8093:55;;8144:1;8141;8134:12;8093:55;8180:6;8167:20;8206:4;8230:60;8246:43;8286:2;8246:43;:::i;:::-;8230:60;:::i;:::-;8312:3;8336:2;8331:3;8324:15;8364:4;8359:3;8355:14;8348:21;;8421:4;8415:2;8412:1;8408:10;8400:6;8396:23;8392:34;8378:48;;8449:3;8441:6;8438:15;8435:35;;;8466:1;8463;8456:12;8435:35;8502:4;8494:6;8490:17;8516:142;8532:6;8527:3;8524:15;8516:142;;;8598:17;;8586:30;;8636:12;;;;8549;;8516:142;;;-1:-1:-1;8676:5:495;8019:668;-1:-1:-1;;;;;;8019:668:495:o;8692:710::-;8765:5;8813:4;8801:9;8796:3;8792:19;8788:30;8785:50;;;8831:1;8828;8821:12;8785:50;8853:22;;:::i;:::-;8844:31;;8911:9;8898:23;8891:5;8884:38;8974:2;8963:9;8959:18;8946:32;8987:30;9009:7;8987:30;:::i;:::-;9044:2;9033:14;;9026:31;9109:2;9094:18;;9081:32;9122:30;9081:32;9122:30;:::i;:::-;9179:2;9168:14;;9161:31;9243:2;9228:18;;9215:32;-1:-1:-1;;;;;9259:30:495;;9256:50;;;9302:1;9299;9292:12;9256:50;9338:57;9391:3;9382:6;9371:9;9367:22;9338:57;:::i;:::-;9333:2;9326:5;9322:14;9315:81;;8692:710;;;;:::o;9407:798::-;9522:6;9575:2;9563:9;9554:7;9550:23;9546:32;9543:52;;;9591:1;9588;9581:12;9543:52;9631:9;9618:23;-1:-1:-1;;;;;9701:2:495;9693:6;9690:14;9687:34;;;9717:1;9714;9707:12;9687:34;9740:22;;;;9796:4;9778:16;;;9774:27;9771:47;;;9814:1;9811;9804:12;9771:47;9840:22;;:::i;:::-;9900:2;9887:16;9928:2;9918:8;9915:16;9912:36;;;9944:1;9941;9934:12;9912:36;9971:72;10035:7;10024:8;10020:2;10016:17;9971:72;:::i;:::-;9964:5;9957:87;;10089:2;10085;10081:11;10068:25;10053:40;;10102:33;10127:7;10102:33;:::i;:::-;10162:2;10151:14;;10144:31;;;;-1:-1:-1;10155:5:495;9407:798;-1:-1:-1;;;9407:798:495:o;10210:180::-;10269:6;10322:2;10310:9;10301:7;10297:23;10293:32;10290:52;;;10338:1;10335;10328:12;10290:52;-1:-1:-1;10361:23:495;;10210:180;-1:-1:-1;10210:180:495:o;11269:525::-;11355:6;11363;11371;11379;11432:3;11420:9;11411:7;11407:23;11403:33;11400:53;;;11449:1;11446;11439:12;11400:53;11488:9;11475:23;11507:31;11532:5;11507:31;:::i;:::-;11557:5;-1:-1:-1;11609:2:495;11594:18;;11581:32;;-1:-1:-1;11665:2:495;11650:18;;11637:32;11678:33;11637:32;11678:33;:::i;:::-;11269:525;;;;-1:-1:-1;11730:7:495;;11784:2;11769:18;11756:32;;-1:-1:-1;;11269:525:495:o;12429:408::-;12536:6;12589:2;12577:9;12568:7;12564:23;12560:32;12557:52;;;12605:1;12602;12595:12;12557:52;12645:9;12632:23;-1:-1:-1;;;;;12670:6:495;12667:30;12664:50;;;12710:1;12707;12700:12;12664:50;12733:22;;12789:3;12771:16;;;12767:26;12764:46;;;12806:1;12803;12796:12;12842:315;12910:6;12918;12971:2;12959:9;12950:7;12946:23;12942:32;12939:52;;;12987:1;12984;12977:12;12939:52;13023:9;13010:23;13000:33;;13083:2;13072:9;13068:18;13055:32;13096:31;13121:5;13096:31;:::i;:::-;13146:5;13136:15;;;12842:315;;;;;:::o;13549:558::-;13628:5;13676:6;13664:9;13659:3;13655:19;13651:32;13648:52;;;13696:1;13693;13686:12;13648:52;13718:22;;:::i;:::-;13709:31;;13763:55;13814:3;13803:9;13763:55;:::i;:::-;13756:5;13749:70;13871:3;13860:9;13856:19;13843:33;13885;13910:7;13885:33;:::i;:::-;13945:4;13934:16;;13927:33;14012:3;13997:19;;13984:33;14026;13984;14026;:::i;:::-;14086:4;14075:16;;14068:33;14079:5;13549:558;-1:-1:-1;;13549:558:495:o;14112:280::-;14223:6;14276:3;14264:9;14255:7;14251:23;14247:33;14244:53;;;14293:1;14290;14283:12;14244:53;14316:70;14378:7;14367:9;14316:70;:::i;14397:356::-;14460:5;14508:4;14496:9;14491:3;14487:19;14483:30;14480:50;;;14526:1;14523;14516:12;14480:50;14548:22;;:::i;:::-;14539:31;;14606:9;14593:23;14586:5;14579:38;14677:2;14666:9;14662:18;14649:32;14644:2;14637:5;14633:14;14626:56;14742:2;14731:9;14727:18;14714:32;14709:2;14702:5;14698:14;14691:56;14397:356;;;;:::o;14758:471::-;14863:6;14916:3;14904:9;14895:7;14891:23;14887:33;14884:53;;;14933:1;14930;14923:12;14884:53;14959:22;;:::i;:::-;15004:54;15050:7;15039:9;15004:54;:::i;:::-;14997:5;14990:69;15111:2;15100:9;15096:18;15083:32;15124:33;15149:7;15124:33;:::i;:::-;15184:4;15173:16;;15166:33;15177:5;14758:471;-1:-1:-1;;;14758:471:495:o;15234:301::-;15293:6;15346:2;15334:9;15325:7;15321:23;15317:32;15314:52;;;15362:1;15359;15352:12;15314:52;15401:9;15388:23;-1:-1:-1;;;;;15444:5:495;15440:46;15433:5;15430:57;15420:85;;15501:1;15498;15491:12;15540:898;15617:6;15625;15678:2;15666:9;15657:7;15653:23;15649:32;15646:52;;;15694:1;15691;15684:12;15646:52;15733:9;15720:23;15752:31;15777:5;15752:31;:::i;:::-;15802:5;-1:-1:-1;15826:2:495;15864:18;;;15851:32;-1:-1:-1;;;;;15932:14:495;;;15929:34;;;15959:1;15956;15949:12;15929:34;15997:6;15986:9;15982:22;15972:32;;16042:7;16035:4;16031:2;16027:13;16023:27;16013:55;;16064:1;16061;16054:12;16013:55;16100:2;16087:16;16122:2;16118;16115:10;16112:36;;;16128:18;;:::i;:::-;16170:53;16213:2;16194:13;;-1:-1:-1;;16190:27:495;16186:36;;16170:53;:::i;:::-;16157:66;;16246:2;16239:5;16232:17;16286:7;16281:2;16276;16272;16268:11;16264:20;16261:33;16258:53;;;16307:1;16304;16297:12;16258:53;16362:2;16357;16353;16349:11;16344:2;16337:5;16333:14;16320:45;16406:1;16401:2;16396;16389:5;16385:14;16381:23;16374:34;;16427:5;16417:15;;;;;15540:898;;;;;:::o;16443:1616::-;16511:5;16559:4;16547:9;16542:3;16538:19;16534:30;16531:50;;;16577:1;16574;16567:12;16531:50;16599:22;;:::i;:::-;16590:31;;16657:9;16644:23;16637:5;16630:38;16687:2;16740;16729:9;16725:18;16712:32;-1:-1:-1;;;;;16804:2:495;16796:6;16793:14;16790:34;;;16820:1;16817;16810:12;16790:34;16843:22;;;;16895:4;16881:12;;;16877:23;16874:43;;;16913:1;16910;16903:12;16874:43;16941:22;;:::i;:::-;17001:2;16988:16;17029:2;17019:8;17016:16;17013:36;;;17045:1;17042;17035:12;17013:36;17074:52;17122:3;17111:8;17107:2;17103:17;17074:52;:::i;:::-;17065:7;17058:69;;17173:2;17169;17165:11;17152:25;17202:2;17192:8;17189:16;17186:36;;;17218:1;17215;17208:12;17186:36;17241:17;;17289:4;17281:13;;17277:23;-1:-1:-1;17267:51:495;;17314:1;17311;17304:12;17267:51;17350:2;17337:16;17373:60;17389:43;17429:2;17389:43;:::i;17373:60::-;17467:15;;;17549:1;17545:10;;;;17537:19;;17533:28;;;17498:12;;;;17573:15;;;17570:35;;;17601:1;17598;17591:12;17570:35;17625:11;;;;17645:142;17661:6;17656:3;17653:15;17645:142;;;17727:17;;17715:30;;17678:12;;;;17765;;;;17645:142;;;17803:16;;;17796:31;-1:-1:-1;;;17873:4:495;17865:13;;17852:27;17891:16;;;17888:36;;;17920:1;17917;17910:12;17888:36;17960:52;18008:3;17997:8;17993:2;17989:17;17960:52;:::i;:::-;17953:4;17944:7;17940:18;17933:80;;18045:7;18040:2;18033:5;18029:14;18022:31;;;;;16443:1616;;;;:::o;18064:529::-;18142:5;18190:4;18178:9;18173:3;18169:19;18165:30;18162:50;;;18208:1;18205;18198:12;18162:50;18230:22;;:::i;:::-;18221:31;;18288:9;18275:23;-1:-1:-1;;;;;18313:6:495;18310:30;18307:50;;;18353:1;18350;18343:12;18307:50;18380:68;18444:3;18435:6;18424:9;18420:22;18380:68;:::i;:::-;18373:5;18366:83;;18501:2;18490:9;18486:18;18473:32;18514:33;18539:7;18514:33;:::i;:::-;18574:2;18563:14;;18556:31;18567:5;18064:529;-1:-1:-1;;18064:529:495:o;18598:395::-;18708:6;18761:2;18749:9;18740:7;18736:23;18732:32;18729:52;;;18777:1;18774;18767:12;18729:52;18817:9;18804:23;-1:-1:-1;;;;;18842:6:495;18839:30;18836:50;;;18882:1;18879;18872:12;18836:50;18905:82;18979:7;18970:6;18959:9;18955:22;18905:82;:::i;18998:258::-;19093:6;19146:2;19134:9;19125:7;19121:23;19117:32;19114:52;;;19162:1;19159;19152:12;19114:52;19185:65;19242:7;19231:9;19185:65;:::i;19261:418::-;19327:5;19375:4;19363:9;19358:3;19354:19;19350:30;19347:50;;;19393:1;19390;19383:12;19347:50;19426:2;19420:9;19468:4;19460:6;19456:17;19539:6;19527:10;19524:22;-1:-1:-1;;;;;19491:10:495;19488:34;19485:62;19482:88;;;19550:18;;:::i;:::-;19586:2;19579:22;19649:23;;19634:39;;-1:-1:-1;19619:6:495;19261:418;-1:-1:-1;19261:418:495:o;19684:612::-;19792:6;19845:2;19833:9;19824:7;19820:23;19816:32;19813:52;;;19861:1;19858;19851:12;19813:52;19887:22;;:::i;:::-;19932:57;19981:7;19970:9;19932:57;:::i;:::-;19925:5;19918:72;20042:2;20031:9;20027:18;20014:32;20055:33;20080:7;20055:33;:::i;:::-;20115:2;20104:14;;20097:31;20180:2;20165:18;;20152:32;20193:33;20152:32;20193:33;:::i;:::-;20253:2;20242:14;;20235:31;20246:5;19684:612;-1:-1:-1;;;19684:612:495:o;20700:250::-;20785:1;20795:113;20809:6;20806:1;20803:13;20795:113;;;20885:11;;;20879:18;20866:11;;;20859:39;20831:2;20824:10;20795:113;;;-1:-1:-1;;20942:1:495;20924:16;;20917:27;20700:250::o;20955:271::-;20997:3;21035:5;21029:12;21062:6;21057:3;21050:19;21078:76;21147:6;21140:4;21135:3;21131:14;21124:4;21117:5;21113:16;21078:76;:::i;:::-;21208:2;21187:15;-1:-1:-1;;21183:29:495;21174:39;;;;21215:4;21170:50;;20955:271;-1:-1:-1;;20955:271:495:o;21231:220::-;21380:2;21369:9;21362:21;21343:4;21400:45;21441:2;21430:9;21426:18;21418:6;21400:45;:::i;21456:439::-;21509:3;21547:5;21541:12;21574:6;21569:3;21562:19;21600:4;21629;21624:3;21620:14;21613:21;;21668:4;21661:5;21657:16;21691:1;21701:169;21715:6;21712:1;21709:13;21701:169;;;21776:13;;21764:26;;21810:12;;;;21845:15;;;;21737:1;21730:9;21701:169;;;-1:-1:-1;21886:3:495;;21456:439;-1:-1:-1;;;;;21456:439:495:o;21900:1081::-;21989:5;21983:12;21978:3;21971:25;21953:3;22015:4;22065:2;22058:5;22054:14;22048:21;22099:4;22094:2;22089:3;22085:12;22078:26;22141:12;22135:19;22186:4;22179;22174:3;22170:14;22163:28;22212:59;22266:3;22261;22257:13;22241:14;22212:59;:::i;:::-;22308:21;;;22302:28;-1:-1:-1;;22392:14:495;;;22388:23;;22381:4;22372:14;;22365:47;22461:21;;22491:20;;;22565:23;;;;-1:-1:-1;22606:1:495;;22349:7;;22529:13;;;;22616:175;22630:6;22627:1;22624:13;22616:175;;;22693:13;;22679:28;;22766:15;;;;22652:1;22645:9;;;;;22729:14;;;;22616:175;;;22620:3;22846:4;22832:12;22828:23;22822:30;22800:52;;22904:2;22898:3;22891:5;22887:15;22883:24;22877:3;22872;22868:13;22861:47;22924:51;22969:5;22953:14;22924:51;:::i;:::-;22917:58;21900:1081;-1:-1:-1;;;;;;;;;21900:1081:495:o;22986:1148::-;23171:2;23160:9;23153:21;23134:4;23209:6;23203:13;23252:4;23247:2;23236:9;23232:18;23225:32;23294:12;23288:19;23344:4;23338:3;23327:9;23323:19;23316:33;23372:65;23432:3;23421:9;23417:19;23401:14;23372:65;:::i;:::-;23358:79;;23492:2;23478:12;23474:21;23468:28;23565:3;23561:8;23549:9;23541:6;23537:22;23533:37;23527:3;23516:9;23512:19;23505:66;23594:52;23639:6;23623:14;23594:52;:::i;:::-;23580:66;;;23707:4;23693:12;23689:23;23683:30;23677:3;23666:9;23662:19;23655:59;23789:4;23775:12;23771:23;23765:30;23758:38;23751:46;23745:3;23734:9;23730:19;23723:75;23847:2;23839:6;23835:15;23829:22;23807:44;;23860:56;23910:4;23899:9;23895:20;23879:14;-1:-1:-1;;;;;4125:31:495;4113:44;;4059:104;23860:56;23972:4;23964:6;23960:17;23954:24;23947:4;23936:9;23932:20;23925:54;24035:4;24027:6;24023:17;24017:24;24010:4;23999:9;23995:20;23988:54;24098:4;24090:6;24086:17;24080:24;24073:4;24062:9;24058:20;24051:54;24122:6;24114:14;;;;22986:1148;;;;:::o;24959:432::-;25020:5;25068:4;25056:9;25051:3;25047:19;25043:30;25040:50;;;25086:1;25083;25076:12;25040:50;25108:22;;:::i;:::-;25099:31;;25167:9;25154:23;25186:33;25211:7;25186:33;:::i;:::-;25228:22;;25302:2;25287:18;;25274:32;25315:30;25274:32;25315:30;:::i;25396:468::-;25499:6;25552:2;25540:9;25531:7;25527:23;25523:32;25520:52;;;25568:1;25565;25558:12;25520:52;25594:22;;:::i;:::-;25639:52;25683:7;25672:9;25639:52;:::i;:::-;25632:5;25625:67;25744:4;25733:9;25729:20;25716:34;25759:33;25784:7;25759:33;:::i;25869:272::-;26071:3;26056:19;;26084:51;26060:9;26117:6;26084:51;:::i;26146:492::-;26213:5;26261:4;26249:9;26244:3;26240:19;26236:30;26233:50;;;26279:1;26276;26269:12;26233:50;26301:22;;:::i;:::-;26292:31;;26359:9;26346:23;26339:5;26332:38;26430:2;26419:9;26415:18;26402:32;26397:2;26390:5;26386:14;26379:56;26495:2;26484:9;26480:18;26467:32;26462:2;26455:5;26451:14;26444:56;26560:2;26549:9;26545:18;26532:32;26527:2;26520:5;26516:14;26509:56;26626:3;26615:9;26611:19;26598:33;26592:3;26585:5;26581:15;26574:58;26146:492;;;;:::o;26643:372::-;26720:5;26768:6;26756:9;26751:3;26747:19;26743:32;26740:52;;;26788:1;26785;26778:12;26740:52;26810:22;;:::i;:::-;26801:31;;26855:54;26905:3;26894:9;26855:54;:::i;:::-;26848:5;26841:69;26944:64;27004:3;26998;26987:9;26983:19;26944:64;:::i;27020:500::-;27139:6;27192:3;27180:9;27171:7;27167:23;27163:33;27160:53;;;27209:1;27206;27199:12;27160:53;27235:22;;:::i;:::-;27280:68;27340:7;27329:9;27280:68;:::i;:::-;27273:5;27266:83;27401:3;27390:9;27386:19;27373:33;27415;27440:7;27415:33;:::i;29519:616::-;29699:4;29741:3;29730:9;29726:19;29718:27;;29754:58;29802:9;29793:6;29787:13;29754:58;:::i;:::-;29868:4;29860:6;29856:17;29850:24;29843:4;29832:9;29828:20;29821:54;29931:4;29923:6;29919:17;29913:24;29906:4;29895:9;29891:20;29884:54;29994:4;29986:6;29982:17;29976:24;29969:4;29958:9;29954:20;29947:54;30057:4;30049:6;30045:17;30039:24;30032:4;30021:9;30017:20;30010:54;30122:4;30114:6;30110:17;30104:24;30095:6;30084:9;30080:22;30073:56;29519:616;;;;:::o;30140:626::-;30237:6;30245;30298:2;30286:9;30277:7;30273:23;30269:32;30266:52;;;30314:1;30311;30304:12;30266:52;30354:9;30341:23;-1:-1:-1;;;;;30424:2:495;30416:6;30413:14;30410:34;;;30440:1;30437;30430:12;30410:34;30478:6;30467:9;30463:22;30453:32;;30523:7;30516:4;30512:2;30508:13;30504:27;30494:55;;30545:1;30542;30535:12;30494:55;30585:2;30572:16;30611:2;30603:6;30600:14;30597:34;;;30627:1;30624;30617:12;30597:34;30680:7;30675:2;30665:6;30662:1;30658:14;30654:2;30650:23;30646:32;30643:45;30640:65;;;30701:1;30698;30691:12;30640:65;30732:2;30724:11;;;;;30754:6;;-1:-1:-1;30140:626:495;;-1:-1:-1;;;;30140:626:495:o;30771:801::-;30931:4;30960:2;31000;30989:9;30985:18;31030:2;31019:9;31012:21;31053:6;31088;31082:13;31119:6;31111;31104:22;31157:2;31146:9;31142:18;31135:25;;31219:2;31209:6;31206:1;31202:14;31191:9;31187:30;31183:39;31169:53;;31257:2;31249:6;31245:15;31278:1;31288:255;31302:6;31299:1;31296:13;31288:255;;;31395:2;31391:7;31379:9;31371:6;31367:22;31363:36;31358:3;31351:49;31423:40;31456:6;31447;31441:13;31423:40;:::i;:::-;31413:50;-1:-1:-1;31521:12:495;;;;31486:15;;;;31324:1;31317:9;31288:255;;;-1:-1:-1;31560:6:495;;30771:801;-1:-1:-1;;;;;;;30771:801:495:o;32046:219::-;32157:6;32210:3;32198:9;32189:7;32185:23;32181:33;32178:53;;;32227:1;32224;32217:12;32658:219;32769:6;32822:3;32810:9;32801:7;32797:23;32793:33;32790:53;;;32839:1;32836;32829:12;33146:210;33248:6;33301:3;33289:9;33280:7;33276:23;33272:33;33269:53;;;33318:1;33315;33308:12;33361:174;33439:5;33484:3;33475:6;33470:3;33466:16;33462:26;33459:46;;;33501:1;33498;33491:12;33540:907;33816:6;33824;33832;33840;33848;33892:9;33883:7;33879:23;33922:3;33918:2;33914:12;33911:32;;;33939:1;33936;33929:12;33911:32;33978:9;33965:23;33997:31;34022:5;33997:31;:::i;:::-;34047:5;-1:-1:-1;34071:81:495;34144:7;34139:2;34124:18;;34071:81;:::i;:::-;34061:91;-1:-1:-1;34187:3:495;-1:-1:-1;;34168:17:495;;34164:27;34161:47;;;34204:1;34201;34194:12;34161:47;;34242:3;34231:9;34227:19;34217:29;;34265:75;34332:7;34326:3;34315:9;34311:19;34265:75;:::i;:::-;34255:85;;34359:82;34433:7;34427:3;34416:9;34412:19;34359:82;:::i;:::-;34349:92;;33540:907;;;;;;;;:::o;34452:159::-;34516:5;34561:2;34552:6;34547:3;34543:16;34539:25;34536:45;;;34577:1;34574;34567:12;34616:248;34708:6;34761:2;34749:9;34740:7;34736:23;34732:32;34729:52;;;34777:1;34774;34767:12;34729:52;34800:58;34850:7;34839:9;34800:58;:::i;34869:500::-;34930:5;34978:4;34966:9;34961:3;34957:19;34953:30;34950:50;;;34996:1;34993;34986:12;34950:50;35018:22;;:::i;:::-;35009:31;;35077:9;35064:23;35096:33;35121:7;35096:33;:::i;:::-;35138:22;;35220:2;35205:18;;;35192:32;35176:14;;;35169:56;35277:2;35262:18;;35249:32;35290:33;35249:32;35290:33;:::i;35374:399::-;35445:5;35493:4;35481:9;35476:3;35472:19;35468:30;35465:50;;;35511:1;35508;35501:12;35465:50;35533:22;;:::i;:::-;35524:31;;35578:48;35622:3;35611:9;35578:48;:::i;:::-;35571:5;35564:63;35679:2;35668:9;35664:18;35651:32;35692:33;35717:7;35692:33;:::i;35778:264::-;35881:6;35934:3;35922:9;35913:7;35909:23;35905:33;35902:53;;;35951:1;35948;35941:12;35902:53;35974:62;36028:7;36017:9;35974:62;:::i;36576:670::-;36698:1;36694;36689:3;36685:11;36681:19;36673:5;36667:12;36663:38;36658:3;36651:51;36751:4;36744:5;36740:16;36734:23;36727:4;36722:3;36718:14;36711:47;36807:4;36800:5;36796:16;36790:23;36783:4;36778:3;36774:14;36767:47;36863:4;36856:5;36852:16;36846:23;36839:4;36834:3;36830:14;36823:47;36919:4;36912:5;36908:16;36902:23;36895:4;36890:3;36886:14;36879:47;36975:4;36968:5;36964:16;36958:23;36951:4;36946:3;36942:14;36935:47;37045:4;37038:5;37034:16;37028:23;37021:31;37014:39;37007:4;37002:3;36998:14;36991:63;37103:4;37096:5;37092:16;37086:23;37079:4;37074:3;37070:14;37063:47;37129:6;37181:2;37174:5;37170:14;37164:21;37194:46;37236:2;37231:3;37227:12;37213;-1:-1:-1;;;;;4125:31:495;4113:44;;4059:104;37251:394;37538:25;;;37525:3;37510:19;;37572:67;37635:2;37620:18;;37612:6;37572:67;:::i;37650:545::-;37722:5;37770:4;37758:9;37753:3;37749:19;37745:30;37742:50;;;37788:1;37785;37778:12;37742:50;37810:22;;:::i;:::-;37801:31;;37862:9;37856:16;37881:33;37906:7;37881:33;:::i;:::-;37923:22;;37990:2;37975:18;;37969:25;38003:30;37969:25;38003:30;:::i;:::-;38065:7;38060:2;38053:5;38049:14;38042:31;;38126:2;38115:9;38111:18;38105:25;38100:2;38093:5;38089:14;38082:49;38184:2;38173:9;38169:18;38163:25;38158:2;38151:5;38147:14;38140:49;37650:545;;;;:::o;38200:945::-;38313:6;38366:3;38354:9;38345:7;38341:23;38337:33;38334:53;;;38383:1;38380;38373:12;38334:53;38416:2;38410:9;38458:4;38450:6;38446:17;38529:6;38517:10;38514:22;-1:-1:-1;;;;;38481:10:495;38478:34;38475:62;38472:88;;;38540:18;;:::i;:::-;38576:2;38569:22;38615:63;38670:7;38659:9;38615:63;:::i;:::-;38607:6;38600:79;38722:3;38711:9;38707:19;38701:26;38736:31;38761:5;38736:31;:::i;:::-;38802:5;38795:4;38787:6;38783:17;38776:32;;38862:3;38851:9;38847:19;38841:26;38836:2;38828:6;38824:15;38817:51;38924:3;38913:9;38909:19;38903:26;38896:4;38888:6;38884:17;38877:53;38985:4;38974:9;38970:20;38964:27;38958:3;38950:6;38946:16;38939:53;39047:3;39036:9;39032:19;39026:26;39020:3;39012:6;39008:16;39001:52;39108:3;39097:9;39093:19;39087:26;39081:3;39073:6;39069:16;39062:52;39133:6;39123:16;;;38200:945;;;;:::o;39150:600::-;39382:4;39424:3;39413:9;39409:19;39401:27;;39455:6;39444:9;39437:25;39511:6;39498:20;39493:2;39482:9;39478:18;39471:48;39580:2;39572:6;39568:15;39555:29;39550:2;39539:9;39535:18;39528:57;39632:2;39624:6;39620:15;39607:29;39645:31;39670:5;39645:31;:::i;:::-;-1:-1:-1;;;;;39712:31:495;39707:2;39692:18;;;;39685:59;;;;39150:600;;-1:-1:-1;;39150:600:495:o;40034:1073::-;40303:6;40292:9;40285:25;40346:2;40341;40330:9;40326:18;40319:30;40266:4;40397:6;40384:20;40484:2;40480:7;40471:6;40455:14;40451:27;40447:41;40427:18;40423:66;40413:94;;40503:1;40500;40493:12;40413:94;40529:31;;40637:2;40626:14;;;40583:19;-1:-1:-1;;;;;40652:30:495;;40649:50;;;40695:1;40692;40685:12;40649:50;40744:6;40728:14;40724:27;40715:7;40711:41;40708:61;;;40765:1;40762;40755:12;40708:61;40805:2;40800;40789:9;40785:18;40778:30;40845:6;40839:3;40828:9;40824:19;40817:35;40904:6;40895:7;40889:3;40878:9;40874:19;40861:50;40961:1;40955:3;40946:6;40935:9;40931:22;40927:32;40920:43;41024:2;41016:6;41012:15;40999:29;40994:2;40983:9;40979:18;40972:57;41097:3;41090:2;41086:7;41081:2;41073:6;41069:15;41065:29;41054:9;41050:45;41046:55;41038:63;;;;40034:1073;;;;;:::o;41112:242::-;41204:6;41257:2;41245:9;41236:7;41232:23;41228:32;41225:52;;;41273:1;41270;41263:12;41225:52;41296;41340:7;41329:9;41296:52;:::i;41359:951::-;41662:6;41651:9;41644:25;41705:2;41700;41689:9;41685:18;41678:30;41625:4;41743:6;41737:13;41786:2;41781;41770:9;41766:18;41759:30;41832:12;41826:19;41820:3;41809:9;41805:19;41798:48;41921:2;41907:12;41903:21;41897:28;41890:36;41883:44;41877:3;41866:9;41862:19;41855:73;42003:2;41989:12;41985:21;41979:28;41972:36;41965:44;41959:3;41948:9;41944:19;41937:73;42065:4;42051:12;42047:23;42041:30;42019:52;;42108:3;42102;42091:9;42087:19;42080:32;42132:65;42192:3;42181:9;42177:19;42161:14;42132:65;:::i;:::-;42257:2;42245:15;;;;42239:22;-1:-1:-1;;;;;42235:48:495;42228:4;42213:20;;;;42206:78;;;;-1:-1:-1;42121:76:495;;41359:951;-1:-1:-1;;41359:951:495:o;42315:127::-;42376:10;42371:3;42367:20;42364:1;42357:31;42407:4;42404:1;42397:15;42431:4;42428:1;42421:15;42447:128;42514:9;;;42535:11;;;42532:37;;;42549:18;;:::i;42580:217::-;42620:1;42646;42636:132;;42690:10;42685:3;42681:20;42678:1;42671:31;42725:4;42722:1;42715:15;42753:4;42750:1;42743:15;42636:132;-1:-1:-1;42782:9:495;;42580:217::o;43018:670::-;43133:6;43186:3;43174:9;43165:7;43161:23;43157:33;43154:53;;;43203:1;43200;43193:12;43154:53;43229:22;;:::i;:::-;43280:9;43274:16;43267:5;43260:31;43344:2;43333:9;43329:18;43323:25;43318:2;43311:5;43307:14;43300:49;43402:2;43391:9;43387:18;43381:25;43376:2;43369:5;43365:14;43358:49;43460:2;43449:9;43445:18;43439:25;43434:2;43427:5;43423:14;43416:49;43519:3;43508:9;43504:19;43498:26;43492:3;43485:5;43481:15;43474:51;43570:3;43559:9;43555:19;43549:26;43584:33;43609:7;43584:33;:::i;:::-;43644:3;43633:15;;43626:32;43637:5;43018:670;-1:-1:-1;;;43018:670:495:o;44251:184::-;44321:6;44374:2;44362:9;44353:7;44349:23;44345:32;44342:52;;;44390:1;44387;44380:12;44342:52;-1:-1:-1;44413:16:495;;44251:184;-1:-1:-1;44251:184:495:o;44688:254::-;44832:9;44869:67;44921:14;44914:5;44869:67;:::i;44947:237::-;45079:9;45116:62;45163:14;45156:5;45116:62;:::i;45189:363::-;45275:58;45329:3;45321:5;45315:12;45275:58;:::i;:::-;45379:4;45368:16;;45362:23;-1:-1:-1;;;;;45457:21:495;;;45448:6;45439:16;;45432:47;45534:4;45523:16;;;45517:23;45513:32;45504:6;45495:16;;;45488:58;45189:363::o;45557:431::-;45870:25;;;45857:3;45842:19;;45904:78;45978:2;45963:18;;45955:6;45904:78;:::i;46306:606::-;46607:25;;;46651:13;;46700:9;;46695:2;46680:18;;;46673:37;;;;46752:11;;;46746:18;46741:2;46726:18;;;46719:46;;;;46807:11;;;46801:18;46796:2;46781:18;;46774:46;46867:15;46861:22;-1:-1:-1;;;;;46857:48:495;46851:3;46836:19;;46829:77;46594:3;46579:19;;46306:606::o;47591:882::-;47644:3;47688:5;47682:12;47715:4;47710:3;47703:17;47741:58;47793:4;47788:3;47784:14;47770:12;47741:58;:::i;:::-;47818:4;47859:14;;;47853:21;47904:14;;;47890:12;;;47883:36;47968:21;;47998:20;;;48072:23;;;;-1:-1:-1;47818:4:495;;-1:-1:-1;;48036:13:495;;;;48123:175;48137:6;48134:1;48131:13;48123:175;;;48200:13;;48186:28;;48273:15;;;;48159:1;48152:9;;;;;48236:14;;;;48123:175;;;48127:3;48346:4;48339:5;48335:16;48329:23;48307:45;;48395:3;48388:5;48384:15;48377:4;48372:3;48368:14;48361:39;48416:51;48461:5;48445:14;48416:51;:::i;:::-;48409:58;47591:882;-1:-1:-1;;;;;;;47591:882:495:o;48478:488::-;48552:3;48596:5;48590:12;48623:4;48618:3;48611:17;48666:12;48660:19;48653:4;48648:3;48644:14;48637:43;48735:4;48721:12;48717:23;48711:30;48689:52;;48771:4;48766:2;48761:3;48757:12;48750:26;48798:59;48852:3;48847;48843:13;48827:14;48798:59;:::i;:::-;48910:4;48899:16;;;48893:23;-1:-1:-1;;;;;48889:49:495;48873:14;;;;48866:73;;;;-1:-1:-1;48785:72:495;48478:488;-1:-1:-1;48478:488:495:o;48971:439::-;49264:6;49253:9;49246:25;49307:2;49302;49291:9;49287:18;49280:30;49227:4;49327:77;49400:2;49389:9;49385:18;49377:6;49327:77;:::i;49415:243::-;49508:6;49561:2;49549:9;49540:7;49536:23;49532:32;49529:52;;;49577:1;49574;49567:12;49529:52;49600;49644:7;49633:9;49600:52;:::i;52241:685::-;52515:4;52557:3;52546:9;52542:19;52534:27;;52588:6;52577:9;52570:25;52620:6;52614:13;52636:69;52701:2;52690:9;52686:18;52681:2;52675:9;6530:5;6524:12;6519:3;6512:25;6586:4;6579:5;6575:16;6569:23;6562:4;6557:3;6553:14;6546:47;6642:4;6635:5;6631:16;6625:23;6618:4;6613:3;6609:14;6602:47;6698:4;6691:5;6687:16;6681:23;6674:4;6669:3;6665:14;6658:47;6754:4;6747:5;6743:16;6737:23;6730:4;6725:3;6721:14;6714:47;;;6438:329;52636:69;52748:2;52740:11;;;52734:18;6524:12;;52829:3;52814:19;;6512:25;6575:16;;;6569:23;6553:14;;;6546:47;6642:4;6631:16;;6625:23;6609:14;;;6602:47;6698:4;6687:16;;6681:23;6665:14;;;6658:47;6754:4;6743:16;6737:23;6721:14;;;6714:47;52881:15;;;;52875:22;-1:-1:-1;;;;;52871:48:495;52865:3;52850:19;;;52843:77;52881:15;52241:685;-1:-1:-1;52241:685:495:o;52931:538::-;53047:6;53100:3;53088:9;53079:7;53075:23;53071:33;53068:53;;;53117:1;53114;53107:12;53068:53;53143:22;;:::i;:::-;53194:9;53188:16;53181:5;53174:31;53258:2;53247:9;53243:18;53237:25;53232:2;53225:5;53221:14;53214:49;53316:2;53305:9;53301:18;53295:25;53290:2;53283:5;53279:14;53272:49;53374:2;53363:9;53359:18;53353:25;53348:2;53341:5;53337:14;53330:49;53433:3;53422:9;53418:19;53412:26;53406:3;53399:5;53395:15;53388:51;53458:5;53448:15;;;52931:538;;;;:::o;53474:129::-;-1:-1:-1;;;;;53552:5:495;53548:30;53541:5;53538:41;53528:69;;53593:1;53590;53583:12;53608:502;53720:6;53773:2;53761:9;53752:7;53748:23;53744:32;53741:52;;;53789:1;53786;53779:12;53741:52;53815:22;;:::i;:::-;53867:9;53861:16;53886:33;53911:7;53886:33;:::i;:::-;53928:22;;53995:2;53980:18;;53974:25;54008:32;53974:25;54008:32;:::i;54115:519::-;54333:4;54375:2;54364:9;54360:18;54352:26;;54405:6;54394:9;54387:25;54461:6;54448:20;54443:2;54432:9;54428:18;54421:48;54516:2;54508:6;54504:15;54491:29;54529:31;54554:5;54529:31;:::i;:::-;-1:-1:-1;;;;;54596:31:495;54591:2;54576:18;;;;54569:59;;;;54115:519;;-1:-1:-1;;54115:519:495:o;55073:247::-;55168:6;55221:2;55209:9;55200:7;55196:23;55192:32;55189:52;;;55237:1;55234;55227:12;55189:52;55260:54;55306:7;55295:9;55260:54;:::i;55726:653::-;55840:6;55893:3;55881:9;55872:7;55868:23;55864:33;55861:53;;;55910:1;55907;55900:12;55861:53;55936:22;;:::i;:::-;55981:63;56036:7;56025:9;55981:63;:::i;:::-;55974:5;55967:78;56100:3;56089:9;56085:19;56079:26;56072:4;56065:5;56061:16;56054:52;56161:3;56150:9;56146:19;56140:26;56133:4;56126:5;56122:16;56115:52;56222:4;56211:9;56207:20;56201:27;56194:4;56187:5;56183:16;56176:53;56283:3;56272:9;56268:19;56262:26;56256:3;56249:5;56245:15;56238:51;56343:3;56332:9;56328:19;56322:26;56316:3;56309:5;56305:15;56298:51;56368:5;56358:15;;;55726:653;;;;:::o;56606:276::-;56715:6;56768:3;56756:9;56747:7;56743:23;56739:33;56736:53;;;56785:1;56782;56775:12;56736:53;56808:68;56868:7;56857:9;56808:68;:::i;57131:711::-;57249:5;57236:19;57231:3;57224:32;57304:4;57297:5;57293:16;57280:30;57319:33;57344:7;57319:33;:::i;:::-;-1:-1:-1;;;;;57422:16:495;;;57415:4;57406:14;;57399:40;57495:4;57484:16;;;57471:30;57455:14;;;57448:54;57558:4;57547:16;;;57534:30;57518:14;;;57511:54;57621:4;57610:16;;;57597:30;57581:14;;;57574:54;57379:3;57673:16;;;57660:30;57644:14;;;57637:54;57739:4;57728:16;;57715:30;;57754:33;57715:30;57754:33;:::i;:::-;57832:2;57823:7;57819:16;57812:4;57807:3;57803:14;57796:40;;;57131:711;;:::o;57847:436::-;58158:25;;;58145:3;58130:19;;58192:85;58273:2;58258:18;;58250:6;58192:85;:::i;58288:245::-;58367:6;58375;58428:2;58416:9;58407:7;58403:23;58399:32;58396:52;;;58444:1;58441;58434:12;58396:52;-1:-1:-1;;58467:16:495;;58523:2;58508:18;;;58502:25;58467:16;;58502:25;;-1:-1:-1;58288:245:495:o;58538:508::-;58877:25;;;58864:3;58849:19;;58911:85;58992:2;58977:18;;58969:6;58911:85;:::i;:::-;59033:6;59027:3;59016:9;59012:19;59005:35;58538:508;;;;;;:::o;59298:391::-;59579:25;;;59566:3;59551:19;;59613:70;59679:2;59664:18;;59656:6;59141:19;;59129:32;;59217:4;59206:16;;;59193:30;59177:14;;;59170:54;59280:4;59269:16;;;59256:30;59240:14;;59233:54;59051:242;59694:463;60003:25;;;59990:3;59975:19;;60037:70;60103:2;60088:18;;60080:6;59141:19;;59129:32;;59217:4;59206:16;;;59193:30;59177:14;;;59170:54;59280:4;59269:16;;;59256:30;59240:14;;59233:54;59051:242;60037:70;60144:6;60138:3;60127:9;60123:19;60116:35;59694:463;;;;;;:::o;60162:245::-;60229:6;60282:2;60270:9;60261:7;60257:23;60253:32;60250:52;;;60298:1;60295;60288:12;60250:52;60330:9;60324:16;60349:28;60371:5;60349:28;:::i;60412:540::-;60525:5;60512:19;60507:3;60500:32;60588:4;60581:5;60577:16;60564:30;60557:4;60552:3;60548:14;60541:54;60651:4;60644:5;60640:16;60627:30;60620:4;60615:3;60611:14;60604:54;60714:4;60707:5;60703:16;60690:30;60683:4;60678:3;60674:14;60667:54;60777:4;60770:5;60766:16;60753:30;60746:4;60741:3;60737:14;60730:54;60832:4;60825:5;60821:16;60808:30;60847:33;60872:7;60847:33;:::i;:::-;-1:-1:-1;;;;;60912:33:495;60933:3;60896:14;;;;60889:57;;;;-1:-1:-1;60412:540:495:o;61341:382::-;61454:5;61441:19;61469:33;61494:7;61469:33;:::i;:::-;-1:-1:-1;;;;;61523:33:495;61511:46;;61605:4;61594:16;;61581:30;61620:32;61581:30;61620:32;:::i;:::-;-1:-1:-1;;;;;61688:7:495;61684:32;61677:4;61672:3;61668:14;61661:56;;61341:382;;:::o;61728:966::-;61839:5;61826:19;61854:33;61879:7;61854:33;:::i;:::-;-1:-1:-1;;;;;61946:16:495;;;61934:29;;62011:4;62000:16;;61987:30;;62026:33;61987:30;62026:33;:::i;:::-;62091:16;;;62084:4;62075:14;;62068:40;62156:4;62145:16;;62132:30;;62171:33;62132:30;62171:33;:::i;:::-;62236:16;;;62229:4;62220:14;;62213:40;62301:4;62290:16;;62277:30;;62316:33;62277:30;62316:33;:::i;:::-;62381:16;;;62374:4;62365:14;;62358:40;62446:4;62435:16;;62422:30;;62461:33;62422:30;62461:33;:::i;:::-;62526:16;;;62519:4;62510:14;;62503:40;62591:4;62580:16;;62567:30;;62606:33;62567:30;62606:33;:::i;:::-;62684:2;62675:7;62671:16;62664:4;62659:3;62655:14;62648:40;;;61728:966;;:::o;62699:1127::-;63374:25;;;-1:-1:-1;;;;;63435:32:495;;63430:2;63415:18;;63408:60;63361:3;63346:19;;63477:80;63553:2;63538:18;;63530:6;63477:80;:::i;:::-;61058:19;;63643:3;63628:19;;61046:32;61134:4;61123:16;;61110:30;61094:14;;;61087:54;61197:4;61186:16;;61173:30;61157:14;;;61150:54;61260:4;61249:16;;61236:30;61220:14;;;61213:54;61323:4;61312:16;;61299:30;61283:14;;;61276:54;63657:78;63730:3;63719:9;63715:19;63707:6;63657:78;:::i;:::-;63744:76;63815:3;63804:9;63800:19;63792:6;63744:76;:::i;63831:1030::-;64478:25;;;64465:3;64450:19;;64512:80;64588:2;64573:18;;64565:6;64512:80;:::i;:::-;61058:19;;64678:3;64663:19;;61046:32;61134:4;61123:16;;61110:30;61094:14;;;61087:54;61197:4;61186:16;;61173:30;61157:14;;;61150:54;61260:4;61249:16;;61236:30;61220:14;;;61213:54;61323:4;61312:16;;61299:30;61283:14;;;61276:54;64692:78;64765:3;64754:9;64750:19;64742:6;64692:78;:::i;:::-;64779:76;64850:3;64839:9;64835:19;64827:6;64779:76;:::i;65814:407::-;66111:25;;;66098:3;66083:19;;66145:70;66211:2;66196:18;;66188:6;65533:12;;65608:9;;-1:-1:-1;;;;;65604:18:495;;;65592:31;;65669:4;65661:13;;;65655:20;65639:14;;;65632:44;65726:4;65718:13;;;65712:20;65708:29;;65692:14;;;65685:53;;;;65780:16;;65774:23;65770:32;65763:4;65754:14;;;65747:56;65445:364;66636:253;66734:6;66787:2;66775:9;66766:7;66762:23;66758:32;66755:52;;;66803:1;66800;66793:12;66755:52;66826:57;66875:7;66864:9;66826:57;:::i;67173:416::-;67262:1;67299:5;67262:1;67313:270;67334:7;67324:8;67321:21;67313:270;;;67393:4;67389:1;67385:6;67381:17;67375:4;67372:27;67369:53;;;67402:18;;:::i;:::-;67452:7;67442:8;67438:22;67435:55;;;67472:16;;;;67435:55;67551:22;;;;67511:15;;;;67313:270;;;67317:3;67173:416;;;;;:::o;67594:806::-;67643:5;67673:8;67663:80;;-1:-1:-1;67714:1:495;67728:5;;67663:80;67762:4;67752:76;;-1:-1:-1;67799:1:495;67813:5;;67752:76;67844:4;67862:1;67857:59;;;;67930:1;67925:130;;;;67837:218;;67857:59;67887:1;67878:10;;67901:5;;;67925:130;67962:3;67952:8;67949:17;67946:43;;;67969:18;;:::i;:::-;-1:-1:-1;;68025:1:495;68011:16;;68040:5;;67837:218;;68139:2;68129:8;68126:16;68120:3;68114:4;68111:13;68107:36;68101:2;68091:8;68088:16;68083:2;68077:4;68074:12;68070:35;68067:77;68064:159;;;-1:-1:-1;68176:19:495;;;68208:5;;68064:159;68255:34;68280:8;68274:4;68255:34;:::i;:::-;68325:6;68321:1;68317:6;68313:19;68304:7;68301:32;68298:58;;;68336:18;;:::i;:::-;68374:20;;67594:806;-1:-1:-1;;;67594:806:495:o;68405:131::-;68465:5;68494:36;68521:8;68515:4;68494:36;:::i;68541:168::-;68614:9;;;68645;;68662:15;;;68656:22;;68642:37;68632:71;;68683:18;;:::i;68714:273::-;68782:6;68835:2;68823:9;68814:7;68810:23;68806:32;68803:52;;;68851:1;68848;68841:12;68803:52;68883:9;68877:16;68933:4;68926:5;68922:16;68915:5;68912:27;68902:55;;68953:1;68950;68943:12;68992:140;69050:5;69079:47;69120:4;69110:8;69106:19;69100:4;69079:47;:::i;69326:127::-;69387:10;69382:3;69378:20;69375:1;69368:31;69418:4;69415:1;69408:15;69442:4;69439:1;69432:15;69458:521;69535:4;69541:6;69601:11;69588:25;69695:2;69691:7;69680:8;69664:14;69660:29;69656:43;69636:18;69632:68;69622:96;;69714:1;69711;69704:12;69622:96;69741:33;;69793:20;;;-1:-1:-1;;;;;;69825:30:495;;69822:50;;;69868:1;69865;69858:12;69822:50;69901:4;69889:17;;-1:-1:-1;69932:14:495;69928:27;;;69918:38;;69915:58;;;69969:1;69966;69959:12;69915:58;69458:521;;;;;:::o;69984:125::-;70049:9;;;70070:10;;;70067:36;;;70083:18;;:::i;70114:782::-;70463:3;70452:9;70445:22;70426:4;70484:57;70536:3;70525:9;70521:19;70513:6;70484:57;:::i;:::-;70476:65;;-1:-1:-1;;;;;70587:6:495;70581:13;70577:54;70572:2;70561:9;70557:18;70550:82;70679:2;70671:6;70667:15;70661:22;-1:-1:-1;;;;;70774:2:495;70760:12;70756:21;70751:2;70740:9;70736:18;70729:49;70842:2;70836;70828:6;70824:15;70818:22;70814:31;70809:2;70798:9;70794:18;70787:59;;;70883:6;70877:3;70866:9;70862:19;70855:35;70114:782;;;;;;:::o;70901:287::-;71030:3;71068:6;71062:13;71084:66;71143:6;71138:3;71131:4;71123:6;71119:17;71084:66;:::i;:::-;71166:16;;;;;70901:287;-1:-1:-1;;70901:287:495:o", + "object": "0x6080604052600436106103b3575f3560e01c80636c2eb350116101e9578063ac9650d811610108578063d927acef1161009d578063f45bf01c1161006d578063f45bf01c14610c2a578063f54ae18b14610c3d578063fa823af514610c50578063fd17174a14610c63575f80fd5b8063d927acef14610bbd578063e05001f514610be5578063e236052b14610bf8578063f1bf35c314610c0b575f80fd5b8063ca40742c116100d8578063ca40742c14610b59578063cb2e9bdc14610b78578063ccd8d4d114610b8b578063d547741f14610b9e575f80fd5b8063ac9650d814610a8f578063ad3cb1cc14610aaf578063b5ec748714610adf578063c421a75914610b3a575f80fd5b80637f417c061161017e5780638ea68d7e1161014e5780638ea68d7e14610a1e57806391d1485414610a315780639ab8011514610a50578063a217fddf14610a7c575f80fd5b80637f417c06146109d1578063834dafb5146109e45780638456cb59146109f75780638e57277614610a0b575f80fd5b806376c1b82f116101b957806376c1b82f146108fc5780637a32376a146109285780637c90a6ca1461093b5780637dc0d1d014610990575f80fd5b80636c2eb3501461079257806373b683be146107a657806373d4a13a146107c557806375829a36146108e9575f80fd5b80632f2ff15d116102d55780634fd9a8a51161026a57806353e043d41161023a57806353e043d4146106f957806354fd4d501461070c5780635c975abb146107435780635cbc51eb14610766575f80fd5b80634fd9a8a5146106ac578063510aeb39146106bf57806352d1902d146106d2578063536b9c79146106e6575f80fd5b80633ae6d7c3116102a55780633ae6d7c3146106535780633f4ba83a1461066657806344ce7c301461067a5780634f1ef28614610699575f80fd5b80632f2ff15d146105ef57806336568abe1461060e5780633746f8581461062d5780633962a68614610640575f80fd5b8063134f3f961161034b578063248a9ca31161031b578063248a9ca31461058b5780632b4c9a20146105aa5780632b59bd99146105bd5780632e106f21146105dc575f80fd5b8063134f3f96146104d65780631970e5ea146104e95780631e5eb1d0146105085780631ff75b0b1461056c575f80fd5b806304c842221161038657806304c842221461044b5780630cf8542f146104775780630cfa9a491461048a5780630d37ab00146104a9575f80fd5b806301ffc9a7146103b757806302088c51146103eb57806302f2855a146104175780630317b9df1461042c575b5f80fd5b3480156103c2575f80fd5b506103d66103d1366004614390565b610c76565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b5061040a610405366004614590565b610cac565b6040516103e291906145d9565b61042a61042536600461464e565b610d2d565b005b348015610437575f80fd5b5061042a610446366004614678565b610e20565b348015610456575f80fd5b5061046a6104653660046146a9565b610f24565b6040516103e291906146c4565b61042a61048536600461464e565b610fab565b348015610495575f80fd5b506103d66104a43660046146a9565b610fd8565b3480156104b4575f80fd5b506104c86104c33660046146fd565b611119565b6040519081526020016103e2565b61042a6104e4366004614829565b61112c565b3480156104f4575f80fd5b506104c86105033660046148a7565b6111da565b348015610513575f80fd5b5061051c6111e5565b6040516103e29190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201516001600160a01b03169181019190915260c00190565b348015610577575f80fd5b506104c86105863660046148be565b611297565b348015610596575f80fd5b506104c86105a53660046148a7565b61133a565b61042a6105b836600461464e565b61135a565b3480156105c8575f80fd5b506104c86105d73660046146fd565b611387565b61042a6105ea366004614903565b611393565b3480156105fa575f80fd5b5061042a610609366004614939565b6113b9565b348015610619575f80fd5b5061042a610628366004614939565b6113db565b61042a61063b366004614678565b611413565b61042a61064e3660046149bc565b611439565b61042a610661366004614a0f565b611584565b348015610671575f80fd5b5061042a6117c0565b348015610685575f80fd5b506103d66106943660046146a9565b611819565b61042a6106a7366004614a4d565b61194c565b61042a6106ba366004614c58565b61196b565b61042a6106cd366004614c89565b611a19565b3480156106dd575f80fd5b506104c8611a46565b61042a6106f4366004614ce2565b611a61565b61042a610707366004614c58565b611b5a565b348015610717575f80fd5b5060408051808201909152600681526576312e382e3160d01b60208201525b6040516103e29190614d80565b34801561074e575f80fd5b505f80516020615f5b8339815191525460ff166103d6565b348015610771575f80fd5b506107856107803660046146a9565b611c08565b6040516103e29190614e60565b34801561079d575f80fd5b5061042a61204b565b3480156107b1575f80fd5b506104c86107c03660046148be565b61211b565b3480156107d0575f80fd5b5061087860408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152506040805161010081018252601154815260125460208201526014546001600160a01b03908116928201929092526015548216606082015260165482166080820152601a54821660a0820152601854821660c082015260195490911660e082015290565b604080518251815260208084015190820152828201516001600160a01b039081169282019290925260608084015183169082015260808084015183169082015260a08084015183169082015260c08084015183169082015260e09283015190911691810191909152610100016103e2565b61042a6108f7366004614f37565b61217a565b348015610907575f80fd5b5061091b6109163660046148a7565b612273565b6040516103e29190614f69565b61042a610936366004614ff7565b612339565b348015610946575f80fd5b5061094f6123e7565b6040516103e291905f60a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b34801561099b575f80fd5b506109a4612485565b6040805182516001600160a01b031681526020928301516001600160401b031692810192909252016103e2565b61042a6109df366004614c89565b612508565b61042a6109f23660046149bc565b6125b4565b348015610a02575f80fd5b5061042a6126e7565b61042a610a1936600461464e565b612740565b61042a610a2c366004614590565b61276d565b348015610a3c575f80fd5b506103d6610a4b366004614939565b6127a2565b348015610a5b575f80fd5b50610a6f610a6a366004614590565b6127d8565b6040516103e2919061502b565b348015610a87575f80fd5b506104c85f81565b610aa2610a9d366004615077565b612859565b6040516103e291906150e5565b348015610aba575f80fd5b50610736604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610aea575f80fd5b50610afe610af93660046148a7565b61286e565b6040516103e2919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b348015610b45575f80fd5b5061046a610b543660046146a9565b612954565b348015610b64575f80fd5b506104c8610b733660046146a9565b6129db565b61042a610b86366004615147565b612a5e565b61042a610b99366004614678565b612a8b565b348015610ba9575f80fd5b5061042a610bb8366004614939565b612ab1565b610bd0610bcb366004615158565b612acd565b604080519283526020830191909152016103e2565b6104c8610bf336600461464e565b612d18565b61042a610c06366004615168565b612e86565b348015610c16575f80fd5b5061042a610c25366004615189565b612eba565b61042a610c3836600461520d565b613132565b61042a610c4b36600461529a565b6131e5565b61042a610c5e36600461529a565b613293565b61042a610c7136600461520d565b613341565b5f6001600160e01b03198216637965db0b60e01b1480610ca657506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb461423d565b604051631c81982560e11b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__90633903304a90610ced905f908690600401615323565b61014060405180830381865af4158015610d09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca6919061538e565b610d35613375565b610d3d6133ac565b604051635fed4de960e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__90635fed4de990610d76905f908590600401615423565b5f6040518083038186803b158015610d8c575f80fd5b505af4158015610d9e573d5f803e3d5ffd5b505060405163d96aec4360e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__925063d96aec439150610ddb905f908590600401615423565b5f6040518083038186803b158015610df1575f80fd5b505af4158015610e03573d5f803e3d5ffd5b50505050610e1d60015f80516020615f7b83398151915255565b50565b5f610e2b81336133f1565b610e565760405163e2517d3f60e01b8152336004820152602481018290526044015b60405180910390fd5b60405163e57980dd60e01b815273__$72c16261390208f563094e6a4fc9f74031$__9063e57980dd90610e8f905f908690600401615465565b5f6040518083038186803b158015610ea5575f80fd5b505af4158015610eb7573d5f803e3d5ffd5b5050604051634752b3b360e01b815273__$72c16261390208f563094e6a4fc9f74031$__9250634752b3b39150610ef4905f908690600401615465565b5f6040518083038186803b158015610f0a575f80fd5b505af4158015610f1c573d5f803e3d5ffd5b505050505050565b610f516040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526001820154815260028201549281019290925260038101549282019290925260048201546060820152600590910154608082015290565b610e1d604051806040016040528083803603810190610fca91906154e9565b815233602090910152613293565b6001600160a01b0381165f908152600e6020908152604080832081518083018352600482018054825283516005909301805460808188028601810190965260608501818152610ca6979496939594870194938492849184018282801561105b57602002820191905f5260205f20905b815481526020019060010190808311611047575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b157602002820191905f5260205f20905b81548152602001906001019080831161109d575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561110757602002820191905f5260205f20905b8154815260200190600101908083116110f3575b5050505050815250508152505061349a565b5f6111258184846134b3565b9392505050565b611134613375565b61113c6133ac565b6040516333d4ade560e01b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__906333d4ade590611175905f908590600401615503565b5f6040518083038186803b15801561118b575f80fd5b505af415801561119d573d5f803e3d5ffd5b505060405163178bcac760e11b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__9250632f17958e9150610ddb905f908590600401615503565b5f610ca68183613601565b6112216040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681525090565b6040516386617e7760e01b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__906386617e779060240160c060405180830381865af415801561126e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615573565b905090565b60405163897bce1f60e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__9063897bce1f9060a4015b602060405180830381865af415801561130d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133191906155d1565b95945050505050565b5f9081525f80516020615f3b833981519152602052604090206001015490565b610e1d60405180604001604052808380360381019061137991906154e9565b8152336020909101526131e5565b5f611125818484613801565b610e1d6040518060400160405280836113ab906155e8565b81523360209091015261112c565b6113c28261133a565b6113cb81613945565b6113d5838361394f565b50505050565b6001600160a01b03811633146114045760405163334bd91960e11b815260040160405180910390fd5b61140e82826139f0565b505050565b610e1d60405180604001604052808361142b906155f3565b815233602090910152611b5a565b611441613375565b6114496133ac565b60405163160b9e6b60e31b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063b05cf35890611482905f90859060040161562f565b5f6040518083038186803b158015611498575f80fd5b505af41580156114aa573d5f803e3d5ffd5b5050604051639f46aa4160e01b815273__$c58e2605104bb31274ad8c04841b6a7550$__9250639f46aa4191506114e7905f90859060040161562f565b5f6040518083038186803b1580156114fd575f80fd5b505af415801561150f573d5f803e3d5ffd5b505050505f19815f0151602001510361156e5760208101516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610ddb565b610e1d60015f80516020615f7b83398151915255565b61158c613375565b6115946133ac565b602081015160405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af41580156115f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161c91906155d1565b60405163f9c417bd60e01b815290915073__$7fa168b5d238863382c2bf886894022425$__9063f9c417bd90611658905f908790600401615644565b5f6040518083038186803b15801561166e575f80fd5b505af4158015611680573d5f803e3d5ffd5b5050604051634971bf9960e01b815273__$7fa168b5d238863382c2bf886894022425$__9250634971bf9991506116bd905f908790600401615644565b5f6040518083038186803b1580156116d3575f80fd5b505af41580156116e5573d5f803e3d5ffd5b505060405163046dbd1360e11b81525f600482018190526001600160a01b0386166024830152925073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__91506308db7a2690604401602060405180830381865af4158015611748573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176c91906155d1565b90508181116117a75760405163625a84dd60e01b81526001600160a01b03841660048201526024810183905260448101829052606401610e4d565b505050610e1d60015f80516020615f7b83398151915255565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6117eb81336133f1565b6118115760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b610e1d613a69565b6001600160a01b0381165f908152600e602090815260408083208151808301835281548152825160018301805460808188028401810190965260608301818152610ca6979496948701948492849184018282801561105b57602002820191905f5260205f20908154815260200190600101908083116110475750505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b157602002820191905f5260205f209081548152602001906001019080831161109d57505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561110757602002820191905f5260205f20908154815260200190600101908083116110f3575050505050815250508152505061349a565b611954613ac8565b61195d82613b6c565b6119678282613b9d565b5050565b611973613375565b61197b6133ac565b604051637125eda960e11b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__9063e24bdb52906119b4905f90859060040161573f565b5f6040518083038186803b1580156119ca575f80fd5b505af41580156119dc573d5f803e3d5ffd5b505060405163184d91f360e31b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__925063c26c8f989150610ddb905f90859060040161573f565b610e1d604051806040016040528083803603810190611a389190615757565b81523360209091015261217a565b5f611a4f613c59565b505f80516020615f1b83398151915290565b611a69613375565b611a716133ac565b604080516325f2df6f60e01b81525f6004820152825151602482015260208301516001600160a01b03908116604483015291830151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__906325f2df6f906084015f6040518083038186803b158015611ae3575f80fd5b505af4158015611af5573d5f803e3d5ffd5b5050604080516330e78a9160e11b81525f6004820152845151602482015260208501516001600160a01b03908116604483015291850151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__92506361cf15229150608401610ddb565b611b62613375565b611b6a6133ac565b604051632d0c1e8b60e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__90632d0c1e8b90611ba3905f90859060040161573f565b5f6040518083038186803b158015611bb9575f80fd5b505af4158015611bcb573d5f803e3d5ffd5b505060405163c0c66ed960e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__925063c0c66ed99150610ddb905f90859060040161573f565b611c10614283565b5f80516020615f7b83398151915254600203611c3f57604051633ee5aeb560e01b815260040160405180910390fd5b604080516001600160a01b0384165f908152600e60209081529083902061016083018452805461012084019081528451600183018054608095810283018601909752606082018781529596879660a088019687959487946101408b01949193909284928491840182828015611cd157602002820191905f5260205f20905b815481526020019060010190808311611cbd575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d2757602002820191905f5260205f20905b815481526020019060010190808311611d13575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611d7d57602002820191905f5260205f20905b815481526020019060010190808311611d69575b505050505081525050815250508152602001600482016040518060400160405290815f8201548152602001600182016040518060600160405290815f8201805480602002602001604051908101604052809291908181526020018280548015611e0357602002820191905f5260205f20905b815481526020019060010190808311611def575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611e5957602002820191905f5260205f20905b815481526020019060010190808311611e45575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611eaf57602002820191905f5260205f20905b815481526020019060010190808311611e9b575b505050919092525050509052508152600882015460208083019190915260099092015460ff1615156040918201529183526001600160a01b0386811691840182905260165483516370a0823160e01b815260048101939093529390920192909116906370a0823190602401602060405180830381865afa158015611f35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5991906155d1565b8152601a546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611fa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fcd91906155d1565b81526018546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa15801561201d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204191906155d1565b905290505b919050565b5f61205581613945565b612a315f612061613ca2565b8054909150600160401b900460ff1680612088575080546001600160401b03808416911610155b156120a65760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556120cf613cca565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b604051637574b6e360e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__90637574b6e39060a4016112f2565b612182613375565b61218a6133ac565b604051623fe27360e01b81525f6004820152815180516001600160a01b039081166024840152602091820151151560448401529083015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__90623fe273906084015f6040518083038186803b1580156121fb575f80fd5b505af415801561220d573d5f803e3d5ffd5b505060405163724e2b6f60e01b81525f6004820152835180516001600160a01b039081166024840152602091820151151560448401529085015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__925063724e2b6f9150608401610ddb565b61227b6142bd565b604051633978289f60e01b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90633978289f90604401602060405180830381865af41580156122cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122f391906155d1565b6040805160808101825282546001600160a01b0381168252600160a01b900460ff1615156020820152600183015491810191909152600290910154606082015292915050565b612341613375565b6123496133ac565b60405163da25f11760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__9063da25f11790612382905f908590600401615771565b5f6040518083038186803b158015612398575f80fd5b505af41580156123aa573d5f803e3d5ffd5b50506040516388fb1b6760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__92506388fb1b679150610ddb905f908590600401615771565b6124146040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051636e9bc7eb60e11b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063dd378fd69060240160a060405180830381865af4158015612461573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615807565b604080518082019091525f8082526020820152604051631ae5e80160e31b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063d72f4008906024016040805180830381865af41580156124e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615869565b612510613375565b6125186133ac565b6040516210aa0b60e31b815273__$45d7492db284be01938913cb41b9cac2a6$__90628550589061254f905f90859060040161589c565b5f6040518083038186803b158015612565575f80fd5b505af4158015612577573d5f803e3d5ffd5b50506040516364140a8360e01b815273__$45d7492db284be01938913cb41b9cac2a6$__92506364140a839150610ddb905f90859060040161589c565b6125bc613375565b6125c46133ac565b604051631e55c20b60e31b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9063f2ae1058906125fd905f90859060040161562f565b5f6040518083038186803b158015612613575f80fd5b505af4158015612625573d5f803e3d5ffd5b5050604051630f6470bd60e01b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9250630f6470bd9150612662905f90859060040161562f565b5f6040518083038186803b158015612678575f80fd5b505af415801561268a573d5f803e3d5ffd5b505050505f19815f0151602001510361156e578051516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610ddb565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61271281336133f1565b6127385760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b610e1d613cda565b610e1d60405180604001604052808380360381019061275f91906158d4565b815233602090910152611584565b610e1d6040518060600160405280838152602001336001600160a01b03168152602001336001600160a01b0316815250611439565b5f9182525f80516020615f3b833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6127e06142ec565b60405163301d1d1560e21b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063c074745490612819905f908690600401615323565b61012060405180830381865af4158015612835573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906158ee565b60606128636133ac565b6111255f8484613d22565b61289e60405180608001604052805f6001600160a01b031681526020015f81526020015f81526020015f81525090565b604051634c9829bf60e11b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90639930537e90604401602060405180830381865af41580156128f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061291691906155d1565b6040805160808101825282546001600160a01b0316815260018301546020820152600283015491810191909152600390910154606082015292915050565b6129816040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526006820154815260078201549281019290925260088101549282019290925260098201546060820152600a90910154608082015290565b60405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af4158015612a3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906155d1565b610e1d604051806040016040528083803603810190612a7d9190615950565b815233602090910152612339565b610e1d604051806040016040528083612aa3906155f3565b81523360209091015261196b565b612aba8261133a565b612ac381613945565b6113d583836139f0565b5f80612ad7613375565b612adf6133ac565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab612b0a81336133f1565b612b305760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b604051639f53ee0f60e01b815273__$d00168f5747027b5a56099c751031d7e40$__90639f53ee0f90612b69905f9088906004016159d2565b5f6040518083038186803b158015612b7f575f80fd5b505af4158015612b91573d5f803e3d5ffd5b505060405163647a4b7560e11b815273__$d00168f5747027b5a56099c751031d7e40$__925063c8f496ea9150612bce905f9088906004016159d2565b6040805180830381865af4158015612be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c0c91906159e7565b909350915073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__632d77afb65f612c3c60408801602089016146a9565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015612c7f575f80fd5b505af4158015612c91573d5f803e3d5ffd5b5050604051636e6595c160e01b815273__$d00168f5747027b5a56099c751031d7e40$__9250636e6595c19150612cd0905f9088908890600401615a09565b5f6040518083038186803b158015612ce6575f80fd5b505af4158015612cf8573d5f803e3d5ffd5b5050505050612d1360015f80516020615f7b83398151915255565b915091565b5f612d21613375565b612d296133ac565b6040516320b5435f60e11b815273__$04d32033081e1e9356971d8f4b5098bcad$__9063416a86be90612d62905f908690600401615a2d565b5f6040518083038186803b158015612d78575f80fd5b505af4158015612d8a573d5f803e3d5ffd5b5050604051630d0699cb60e21b815273__$04d32033081e1e9356971d8f4b5098bcad$__925063341a672c9150612dc7905f908690600401615a2d565b602060405180830381865af4158015612de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e0691906155d1565b60405163489d188160e01b815290915073__$04d32033081e1e9356971d8f4b5098bcad$__9063489d188190612e44905f9086908690600401615a55565b5f6040518083038186803b158015612e5a575f80fd5b505af4158015612e6c573d5f803e3d5ffd5b5050505061204660015f80516020615f7b83398151915255565b610e1d604051806060016040528083803603810190612ea59190614590565b815233602082018190526040909101526125b4565b5f612ec3613ca2565b805490915060ff600160401b82041615906001600160401b03165f81158015612ee95750825b90505f826001600160401b03166001148015612f045750303b155b905081158015612f12575080155b15612f305760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315612f5a57845460ff60401b1916600160401b1785555b6040516369777eb960e01b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__906369777eb990612f9b905f908e908e908e908e908e90600401615ba4565b5f6040518083038186803b158015612fb1575f80fd5b505af4158015612fc3573d5f803e3d5ffd5b50505050612fcf613e0a565b612fd7613e0a565b612fdf613cca565b612fe7613e0a565b604051632ffdac7160e21b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__9063bff6b1c490613026905f908d908d908d908d90600401615c18565b5f6040518083038186803b15801561303c575f80fd5b505af415801561304e573d5f803e3d5ffd5b5050505061305e5f801b8b61394f565b506130897f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8b61394f565b506130b47ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab8b61394f565b506130df7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd240388b61394f565b50831561312657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b61313a613375565b6131426133ac565b604051635792057f60e11b81525f60048201528135602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__9063af240afe906044015f6040518083038186803b158015613191575f80fd5b505af41580156131a3573d5f803e3d5ffd5b50506040516320e9b9f960e11b81525f60048201528335602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__92506341d373f29150604401610ddb565b6131ed613375565b6131f56133ac565b604051631005beb160e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__9063802df5889061322e905f908590600401615c7c565b5f6040518083038186803b158015613244575f80fd5b505af4158015613256573d5f803e3d5ffd5b5050604051631cc17ae560e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__925063e60bd7289150610ddb905f908590600401615c7c565b61329b613375565b6132a36133ac565b60405163024889b160e51b815273__$d49e499a4608ab3aca09b91fe5950492b6$__906349113620906132dc905f908590600401615c7c565b5f6040518083038186803b1580156132f2575f80fd5b505af4158015613304573d5f803e3d5ffd5b505060405163a083c0ab60e01b815273__$d49e499a4608ab3aca09b91fe5950492b6$__925063a083c0ab9150610ddb905f908590600401615c7c565b610e1d6040518060600160405280838036038101906133609190615cc1565b81523360208201819052604090910152611a61565b5f80516020615f7b8339815191528054600119016133a657604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f80516020615f5b8339815191525460ff16156133dc5760405163d93c066560e01b815260040160405180910390fd5b565b60015f80516020615f7b83398151915255565b5f6133fc83836127a2565b1561340957506001610ca6565b601c546001600160a01b031661342057505f610ca6565b601c54604051632474521560e21b8152600481018590526001600160a01b038481166024830152909116906391d1485490604401602060405180830381865afa15801561346f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134939190615cdb565b9050610ca6565b80515f90158015610ca65750610ca68260200151613e12565b6001600160a01b0382165f908152600e84016020908152604080832081518083018352815481528251600183018054608081880284018101909652606083018181526135f9978c978c979591870194919391928492909184919084018282801561353a57602002820191905f5260205f20905b815481526020019060010190808311613526575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561359057602002820191905f5260205f20905b81548152602001906001019080831161357c575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156135e657602002820191905f5260205f20905b8154815260200190600101908083116135d2575b5050505050815250508152505085613e38565b949350505050565b5f61112583600c015f015f9054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613659573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061367d91906155d1565b61368890600a615dea565b6136929084615df5565b60148501546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa1580156136dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137009190615e0c565b61370b90600a615e2c565b60158601546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa158015613755573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137799190615e0c565b61378490600a615e2c565b600c87015460408051634c6afee560e11b815290516001600160a01b03909216916398d5fdca916004808201926020929091908290030181865afa1580156137ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137f291906155d1565b6137fc9190615df5565b613f92565b6001600160a01b0382165f908152600e840160209081526040808320815180830183526004820180548252835160059093018054608081880286018101909652606085018181526135f9978c978c9791870194919391928492909184919084018282801561353a57602002820191905f5260205f209081548152602001906001019080831161352657505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561359057602002820191905f5260205f209081548152602001906001019080831161357c5750505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156135e657602002820191905f5260205f20908154815260200190600101908083116135d2575050505050815250508152505085613e38565b610e1d8133613f9e565b5f5f80516020615f3b83398151915261396884846127a2565b6139e7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561399d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610ca6565b5f915050610ca6565b5f5f80516020615f3b833981519152613a0984846127a2565b156139e7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610ca6565b613a71613fd7565b5f80516020615f5b833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613b4e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613b425f80516020615f1b833981519152546001600160a01b031690565b6001600160a01b031614155b156133dc5760405163703e46dd60e11b815260040160405180910390fd5b5f613b7781336133f1565b6119675760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613bf7575060408051601f3d908101601f19168201909252613bf4918101906155d1565b60015b613c1f57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610e4d565b5f80516020615f1b8339815191528114613c4f57604051632a87526960e21b815260048101829052602401610e4d565b61140e8383614006565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146133dc5760405163703e46dd60e11b815260040160405180910390fd5b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ca6565b613cd261405b565b6133dc614080565b613ce26133ac565b5f80516020615f5b833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833613aaa565b6060816001600160401b03811115613d3c57613d3c6143b7565b604051908082528060200260200182016040528015613d6f57816020015b6060815260200190600190039081613d5a5790505b5090505f5b82811015613e0257613ddd30858584818110613d9257613d92615e3a565b9050602002810190613da49190615e4e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061408892505050565b828281518110613def57613def615e3a565b6020908102919091010152600101613d74565b509392505050565b6133dc61405b565b8051515f90158015613e275750602082015151155b8015610ca657505060400151511590565b5f815f03613e59576040516301c85f6760e71b815260040160405180910390fd5b613e628361349a565b15613e8a5760405162b04ee160e61b81526001600160a01b0385166004820152602401610e4d565b8251613e968342615e97565b1115613eca57613ea68242615e97565b8351604051636f2f16a760e01b815260048101929092526024820152604401610e4d565b60408051606081018252600d8701546001600160801b03811682526001600160401b03600160801b82048116602080850191909152600160c01b909204168284015285015191516315c6891560e11b8152909173__$99c8b6d537f6911e4d5e2b5618b4ddcec4$__91632b8d122a91613f499185908890600401615eaa565b602060405180830381865af4158015613f64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f8891906155d1565b9695505050505050565b5f6135f98484846140f1565b613fa882826127a2565b6119675760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610e4d565b5f80516020615f5b8339815191525460ff166133dc57604051638dfc202b60e01b815260040160405180910390fd5b61400f8261411d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156140535761140e8282614088565b611967614180565b61406361419f565b6133dc57604051631afcd79f60e31b815260040160405180910390fd5b6133de61405b565b60605f80846001600160a01b0316846040516140a49190615eff565b5f60405180830381855af49150503d805f81146140dc576040519150601f19603f3d011682016040523d82523d5f602084013e6140e1565b606091505b50915091506113318583836141b8565b5f825f19048411830215820261410e5763ad251c275f526004601cfd5b50910281810615159190040190565b806001600160a01b03163b5f0361415257604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610e4d565b5f80516020615f1b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156133dc5760405163b398979f60e01b815260040160405180910390fd5b5f6141a8613ca2565b54600160401b900460ff16919050565b6060826141cd576141c882614214565b611125565b81511580156141e457506001600160a01b0384163b155b1561420d57604051639996b31560e01b81526001600160a01b0385166004820152602401610e4d565b5080611125565b8051156142245780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6040518060e001604052806142506142bd565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060a00160405280614296614323565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b60405180608001604052805f6001600160a01b031681526020015f151581526020015f81526020015f81525090565b6040518060c001604052806142ff6142bd565b81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060800160405280614336614356565b8152602001614343614356565b81525f6020820181905260409091015290565b60405180604001604052805f815260200161438b60405180606001604052806060815260200160608152602001606081525090565b905290565b5f602082840312156143a0575f80fd5b81356001600160e01b031981168114611125575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405161012081016001600160401b03811182821017156143ee576143ee6143b7565b60405290565b604051608081016001600160401b03811182821017156143ee576143ee6143b7565b604080519081016001600160401b03811182821017156143ee576143ee6143b7565b604051606081016001600160401b03811182821017156143ee576143ee6143b7565b60405160a081016001600160401b03811182821017156143ee576143ee6143b7565b60405160c081016001600160401b03811182821017156143ee576143ee6143b7565b604051601f8201601f191681016001600160401b03811182821017156144c6576144c66143b7565b604052919050565b6001600160a01b0381168114610e1d575f80fd5b8035612046816144ce565b8015158114610e1d575f80fd5b8035612046816144ed565b5f6101208284031215614516575f80fd5b61451e6143cb565b9050614529826144e2565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015261456960c083016144fa565b60c082015260e082013560e08201526101006145868184016144e2565b9082015292915050565b5f61012082840312156145a1575f80fd5b6111258383614505565b80516001600160a01b0316825260208082015115159083015260408082015190830152606090810151910152565b5f610140820190506145ec8284516145ab565b60018060a01b036020840151166080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015260c083015161012083015292915050565b5f60608284031215614648575f80fd5b50919050565b5f6060828403121561465e575f80fd5b6111258383614638565b5f60408284031215614648575f80fd5b5f60208284031215614688575f80fd5b81356001600160401b0381111561469d575f80fd5b6135f984828501614668565b5f602082840312156146b9575f80fd5b8135611125816144ce565b60a08101610ca6828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5f806040838503121561470e575f80fd5b8235614719816144ce565b946020939093013593505050565b5f6001600160401b0382111561473f5761473f6143b7565b5060051b60200190565b5f82601f830112614758575f80fd5b8135602061476d61476883614727565b61449e565b8083825260208201915060208460051b87010193508684111561478e575f80fd5b602086015b848110156147aa5780358352918301918301614793565b509695505050505050565b5f608082840312156147c5575f80fd5b6147cd6143f4565b90508135815260208201356147e1816144ed565b602082015260408201356147f4816144ed565b604082015260608201356001600160401b03811115614811575f80fd5b61481d84828501614749565b60608301525092915050565b5f60208284031215614839575f80fd5b81356001600160401b038082111561484f575f80fd5b9083019060408286031215614862575f80fd5b61486a614416565b823582811115614878575f80fd5b614884878286016147b5565b82525060208301359250614897836144ce565b6020810192909252509392505050565b5f602082840312156148b7575f80fd5b5035919050565b5f805f80608085870312156148d1575f80fd5b84356148dc816144ce565b93506020850135925060408501356148f3816144ce565b9396929550929360600135925050565b5f60208284031215614913575f80fd5b81356001600160401b03811115614928575f80fd5b820160808185031215611125575f80fd5b5f806040838503121561494a575f80fd5b82359150602083013561495c816144ce565b809150509250929050565b5f6101608284031215614978575f80fd5b614980614438565b905061498c8383614505565b815261012082013561499d816144ce565b60208201526101408201356149b1816144ce565b604082015292915050565b5f61016082840312156149cd575f80fd5b6111258383614967565b5f606082840312156149e7575f80fd5b6149ef614438565b905081358152602082013560208201526040820135604082015292915050565b5f60808284031215614a1f575f80fd5b614a27614416565b614a3184846149d7565b81526060830135614a41816144ce565b60208201529392505050565b5f8060408385031215614a5e575f80fd5b8235614a69816144ce565b91506020838101356001600160401b0380821115614a85575f80fd5b818601915086601f830112614a98575f80fd5b813581811115614aaa57614aaa6143b7565b614abc601f8201601f1916850161449e565b91508082528784828501011115614ad1575f80fd5b80848401858401375f848284010152508093505050509250929050565b5f60408284031215614afe575f80fd5b614b06614416565b9050813581526020808301356001600160401b0380821115614b26575f80fd5b9084019060608287031215614b39575f80fd5b614b41614438565b823582811115614b4f575f80fd5b614b5b88828601614749565b8252508383013582811115614b6e575f80fd5b8301601f81018813614b7e575f80fd5b8035614b8c61476882614727565b81815260059190911b8201860190868101908a831115614baa575f80fd5b928701925b82841015614bc857833582529287019290870190614baf565b84880152505050604083013582811115614be0575f80fd5b614bec88828601614749565b60408301525080848601525050505092915050565b5f60408284031215614c11575f80fd5b614c19614416565b905081356001600160401b03811115614c30575f80fd5b614c3c84828501614aee565b8252506020820135614c4d816144ce565b602082015292915050565b5f60208284031215614c68575f80fd5b81356001600160401b03811115614c7d575f80fd5b6135f984828501614c01565b5f60408284031215614c99575f80fd5b6111258383614668565b5f60208284031215614cb3575f80fd5b604051602081018181106001600160401b0382111715614cd557614cd56143b7565b6040529135825250919050565b5f60608284031215614cf2575f80fd5b614cfa614438565b614d048484614ca3565b81526020830135614d14816144ce565b60208201526040830135614d27816144ce565b60408201529392505050565b5f5b83811015614d4d578181015183820152602001614d35565b50505f910152565b5f8151808452614d6c816020860160208601614d33565b601f01601f19169290920160200192915050565b602081525f6111256020830184614d55565b5f815180845260208085019450602084015f5b83811015614dc157815187529582019590820190600101614da5565b509495945050505050565b805182525f602080830151604082860152805160606040870152614df360a0870182614d92565b83830151603f19888303810160608a0152815180845291860193505f929091908601905b80841015614e375784518252938601936001939093019290860190614e17565b5060408501519550818982030160808a0152614e538187614d92565b9998505050505050505050565b602081525f825160a060208401528051608060c0850152614e85610140850182614dcc565b9050602082015160bf198583030160e0860152614ea28282614dcc565b91505060408201516101008501526060820151151561012085015260208501519150614ed960408501836001600160a01b03169052565b6040850151606085015260608501516080850152608085015160a0850152809250505092915050565b5f60408284031215614f12575f80fd5b614f1a614416565b90508135614f27816144ce565b81526020820135614c4d816144ed565b5f60608284031215614f47575f80fd5b614f4f614416565b614f598484614f02565b81526040830135614a41816144ce565b60808101610ca682846145ab565b5f60a08284031215614f87575f80fd5b614f8f61445a565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f6101408284031215614fd4575f80fd5b614fdc614416565b9050614fe88383614f77565b8152614c4d8360a08401614f77565b5f6101608284031215615008575f80fd5b615010614416565b61501a8484614fc3565b8152610140830135614a41816144ce565b5f6101208201905061503e8284516145ab565b60208301516080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015292915050565b5f8060208385031215615088575f80fd5b82356001600160401b038082111561509e575f80fd5b818501915085601f8301126150b1575f80fd5b8135818111156150bf575f80fd5b8660208260051b85010111156150d3575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561513a57603f19888603018452615128858351614d55565b9450928501929085019060010161510c565b5092979650505050505050565b5f6101408284031215614648575f80fd5b5f60e08284031215614648575f80fd5b5f6101208284031215614648575f80fd5b5f60c08284031215614648575f80fd5b5f805f805f85870361028081121561519f575f80fd5b86356151aa816144ce565b95506151b98860208901615179565b945060a060df19820112156151cc575f80fd5b5060e0860192506151e1876101808801614668565b91506151f1876101c08801615179565b90509295509295909350565b5f60208284031215614648575f80fd5b5f6020828403121561521d575f80fd5b61112583836151fd565b5f60608284031215615237575f80fd5b61523f614438565b9050813561524c816144ce565b81526020828101359082015260408201356149b1816144ce565b5f60808284031215615276575f80fd5b61527e614416565b905061528a8383615227565b81526060820135614c4d816144ce565b5f608082840312156152aa575f80fd5b6111258383615266565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c0810151151560c083015260e081015160e0830152610100808201516113d5828501826001600160a01b03169052565b828152610140810161112560208301846152b4565b5f60808284031215615348575f80fd5b6153506143f4565b9050815161535d816144ce565b8152602082015161536d816144ed565b80602083015250604082015160408201526060820151606082015292915050565b5f610140828403121561539f575f80fd5b60405160e081018181106001600160401b03821117156153c1576153c16143b7565b6040526153ce8484615338565b815260808301516153de816144ce565b8060208301525060a0830151604082015260c0830151606082015260e0830151608082015261010083015160a082015261012083015160c08201528091505092915050565b5f6080820190508382528235602083015260208301356040830152604083013561544c816144ce565b6001600160a01b03166060929092019190915292915050565b828152604060208201525f8235601e19843603018112615483575f80fd5b83016020810190356001600160401b0381111561549e575f80fd5b8036038213156154ac575f80fd5b604080850152806080850152808260a08601375f60a082860101526020850135606085015260a0601f19601f830116850101925050509392505050565b5f606082840312156154f9575f80fd5b6111258383615227565b828152604060208201525f8251604080840152805160808401526020810151151560a08401526040810151151560c084015260608101519050608060e0840152615551610100840182614d92565b602094909401516001600160a01b031660609390930192909252509092915050565b5f60c08284031215615583575f80fd5b61558b61447c565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a08301516155c5816144ce565b60a08201529392505050565b5f602082840312156155e1575f80fd5b5051919050565b5f610ca636836147b5565b5f610ca63683614aee565b6156098282516152b4565b60208101516001600160a01b039081166101208401526040909101511661014090910152565b828152610180810161112560208301846155fe565b918252805180516020808501919091528082015160408086019190915290910151606084015201516001600160a01b0316608082015260a00190565b5f8151606084526156946060850182614d92565b602084810151868303878301528051808452908201935090915f91908301905b808310156156d457845182529383019360019290920191908301906156b4565b506040860151935086810360408801526156ee8185614d92565b979650505050505050565b5f8151604084528051604085015260208101519050604060608501526157226080850182615680565b6020938401516001600160a01b0316949093019390935250919050565b828152604060208201525f6135f960408301846156f9565b5f60408284031215615767575f80fd5b6111258383614f02565b5f6101808201905083825282516157b760208401825180518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602090810151805160c08501528082015160e0850152604081015161010085015260608101516101208501526080015161014084015292909201516001600160a01b031661016090910152919050565b5f60a08284031215615817575f80fd5b61581f61445a565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6001600160401b0381168114610e1d575f80fd5b5f60408284031215615879575f80fd5b615881614416565b825161588c816144ce565b81526020830151614a4181615855565b5f6060820190508382528235602083015260208301356158bb816144ce565b6001600160a01b03166040929092019190915292915050565b5f606082840312156158e4575f80fd5b61112583836149d7565b5f61012082840312156158ff575f80fd5b61590761447c565b6159118484615338565b81526080830151602082015260a0830151604082015260c0830151606082015260e0830151608082015261010083015160a08201528091505092915050565b5f6101408284031215615961575f80fd5b6111258383614fc3565b80358252602081013561597d816144ce565b6001600160a01b03908116602084015260408281013590840152606080830135908401526080808301359084015260a0828101359084015260c0820135906159c4826144ce565b80821660c085015250505050565b8281526101008101611125602083018461596b565b5f80604083850312156159f8575f80fd5b505080516020909101519092909150565b8381526101208101615a1e602083018561596b565b82610100830152949350505050565b8281526080810161112560208301848035825260208082013590830152604090810135910152565b83815260a08101615a7d60208301858035825260208082013590830152604090810135910152565b826080830152949350505050565b803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0810135615ac5816144ce565b6001600160a01b031660a0929092019190915250565b8035615ae6816144ce565b6001600160a01b031682526020810135615aff81615855565b6001600160401b0381166020840152505050565b8035615b1e816144ce565b6001600160a01b039081168352602082013590615b3a826144ce565b9081166020840152604082013590615b51826144ce565b9081166040840152606082013590615b68826144ce565b9081166060840152608082013590615b7f826144ce565b908116608084015260a082013590615b96826144ce565b80821660a085015250505050565b8681526001600160a01b03861660208201526102a08101615bc86040830187615a8b565b84356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152615c0a6101a0830185615adb565b6156ee6101e0830184615b13565b8581526102808101615c2d6020830187615a8b565b843560e08301526020850135610100830152604085013561012083015260608501356101408301526080850135610160830152615c6e610180830185615adb565b613f886101c0830184615b13565b82815260a081016111256020830184805180516001600160a01b0390811684526020808301518186015260409283015182169285019290925291015116606090910152565b5f60208284031215615cd1575f80fd5b6111258383614ca3565b5f60208284031215615ceb575f80fd5b8151611125816144ed565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115615d4457815f1904821115615d2a57615d2a615cf6565b80851615615d3757918102915b93841c9390800290615d0f565b509250929050565b5f82615d5a57506001610ca6565b81615d6657505f610ca6565b8160018114615d7c5760028114615d8657615da2565b6001915050610ca6565b60ff841115615d9757615d97615cf6565b50506001821b610ca6565b5060208310610133831016604e8410600b8410161715615dc5575081810a610ca6565b615dcf8383615d0a565b805f1904821115615de257615de2615cf6565b029392505050565b5f6111258383615d4c565b8082028115828204841417610ca657610ca6615cf6565b5f60208284031215615e1c575f80fd5b815160ff81168114611125575f80fd5b5f61112560ff841683615d4c565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112615e63575f80fd5b8301803591506001600160401b03821115615e7c575f80fd5b602001915036819003821315615e90575f80fd5b9250929050565b80820180821115610ca657610ca6615cf6565b60a081525f615ebc60a0830186615680565b90506001600160801b03845116602083015260208401516001600160401b0380821660408501528060408701511660608501525050826080830152949350505050565b5f8251615f10818460208701614d33565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212202f00eae29f053452eb8ca6b1a62479f5b4f9da7c8be240bf9d6a98d9297f827a64736f6c63430008170033", + "sourceMap": "4084:12748:278:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:202:84;;;;;;;;;;-1:-1:-1;3443:202:84;;;;;:::i;:::-;;:::i;:::-;;;470:14:486;;463:22;445:41;;433:2;418:18;3443:202:84;;;;;;;;6468:238:280;;;;;;;;;;-1:-1:-1;6468:238:280;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14678:256:278:-;;;;;;:::i;:::-;;:::i;:::-;;7146:259;;;;;;;;;;-1:-1:-1;7146:259:278;;;;;:::i;:::-;;:::i;4234:196:280:-;;;;;;;;;;-1:-1:-1;4234:196:280;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7995:180:278:-;;;;;;:::i;:::-;;:::i;6284:148:280:-;;;;;;;;;;-1:-1:-1;6284:148:280;;;;;:::i;:::-;;:::i;5100:170::-;;;;;;;;;;-1:-1:-1;5100:170:280;;;;;:::i;:::-;;:::i;:::-;;;7795:25:486;;;7783:2;7768:18;5100:170:280;7649:177:486;15236:332:278;;;;;;:::i;:::-;;:::i;2460:172:280:-;;;;;;;;;;-1:-1:-1;2460:172:280;;;;;:::i;:::-;;:::i;2668:125::-;;;;;;;;;;;;;:::i;:::-;;;;;;10650:13:486;;10632:32;;10720:4;10708:17;;;10702:24;10680:20;;;10673:54;10783:4;10771:17;;;10765:24;10743:20;;;10736:54;10846:4;10834:17;;;10828:24;10806:20;;;10799:54;10909:4;10897:17;;;10891:24;10869:20;;;10862:54;10992:3;10964:17;;;10958:24;-1:-1:-1;;;;;10954:50:486;10932:20;;;10925:80;;;;10619:3;10604:19;;10395:616;5812:248:280;;;;;;;;;;-1:-1:-1;5812:248:280;;;;;:::i;:::-;;:::i;4759:191:84:-;;;;;;;;;;-1:-1:-1;4759:191:84;;;;;:::i;:::-;;:::i;8499:186:278:-;;;;;;:::i;:::-;;:::i;5310:178:280:-;;;;;;;;;;-1:-1:-1;5310:178:280;;;;;:::i;:::-;;:::i;14966:234:278:-;;;;;;:::i;:::-;;:::i;5246:136:84:-;;;;;;;;;;-1:-1:-1;5246:136:84;;;;;:::i;:::-;;:::i;6348:245::-;;;;;;;;;;-1:-1:-1;6348:245:84;;;;;:::i;:::-;;:::i;9037:210:278:-;;;;;;:::i;:::-;;:::i;11326:484::-;;;;;;:::i;:::-;;:::i;14292:354::-;;;;;;:::i;:::-;;:::i;7591:116::-;;;;;;;;;;;;;:::i;6100:144:280:-;;;;;;;;;;-1:-1:-1;6100:144:280;;;;;:::i;:::-;;:::i;4161:214:88:-;;;;;;:::i;:::-;;:::i;9873:312:278:-;;;;;;:::i;:::-;;:::i;16320:190::-;;;;;;:::i;:::-;;:::i;3708:134:88:-;;;;;;;;;;;;;:::i;13017:304:278:-;;;;;;:::i;:::-;;:::i;9283:308::-;;;;;;:::i;:::-;;:::i;7021:86:280:-;;;;;;;;;;-1:-1:-1;7093:7:280;;;;;;;;;;;;-1:-1:-1;;;7093:7:280;;;;7021:86;;;;;;;:::i;2496:145:93:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2625:9:93;;;2496:145;;3769:425:280;;;;;;;;;;-1:-1:-1;3769:425:280;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5756:126:278:-;;;;;;;;;;;;;:::i;5528:244:280:-;;;;;;;;;;-1:-1:-1;5528:244:280;;;;;:::i;:::-;;:::i;3145:588::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3218:508:280;;;;;;;;3261:29;;3218:508;;3326:31;;3218:508;;;;3398:36;;-1:-1:-1;;;;;3398:36:280;;;3218:508;;;;;;;3471:32;;;;3218:508;;;;3585:26;;;;3218:508;;;;3643:27;;;;3218:508;;;;3695:20;;;;3218:508;;;;3531:23;;;;;3218:508;;;;;3145:588;;;;;23801:13:486;;23783:32;;23871:4;23859:17;;;23853:24;23831:20;;;23824:54;23913:17;;;23907:24;-1:-1:-1;;;;;24007:21:486;;;23985:20;;;23978:51;;;;24089:4;24077:17;;;24071:24;24067:33;;24045:20;;;24038:63;24161:4;24149:17;;;24143:24;24139:33;;24117:20;;;24110:63;23958:3;24221:17;;;24215:24;24211:33;;24189:20;;;24182:63;24305:4;24293:17;;;24287:24;24283:33;;24261:20;;;24254:63;24377:4;24365:17;;;24359:24;24355:33;;;24333:20;;;24326:63;;;;23770:3;23755:19;3145:588:280;23580:815:486;16546:284:278;;;;;;:::i;:::-;;:::i;4896:164:280:-;;;;;;;;;;-1:-1:-1;4896:164:280;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15936:348:278:-;;;;;;:::i;:::-;;:::i;2829:128:280:-;;;;;;;;;;;;;:::i;:::-;;;;;;27150:4:486;27192:3;27181:9;27177:19;27169:27;;27229:6;27223:13;27212:9;27205:32;27293:4;27285:6;27281:17;27275:24;27268:4;27257:9;27253:20;27246:54;27356:4;27348:6;27344:17;27338:24;27331:4;27320:9;27316:20;27309:54;27419:4;27411:6;27407:17;27401:24;27394:4;27383:9;27379:20;27372:54;27482:4;27474:6;27470:17;27464:24;27457:4;27446:9;27442:20;27435:54;26966:529;;;;;2993:116:280;;;;;;;;;;;;;:::i;:::-;;;;27752:13:486;;-1:-1:-1;;;;;27748:39:486;27730:58;;27848:4;27836:17;;;27830:24;-1:-1:-1;;;;;27826:49:486;27804:20;;;27797:79;;;;27703:18;2993:116:280;27500:382:486;11842:184:278;;;;;;:::i;:::-;;:::i;10512:485::-;;;;;;:::i;:::-;;:::i;7442:112::-;;;;;;;;;;;;;:::i;14062:194::-;;;;;;:::i;:::-;;:::i;11029:261::-;;;;;;:::i;:::-;;:::i;3732:207:84:-;;;;;;;;;;-1:-1:-1;3732:207:84;;;;;:::i;:::-;;:::i;6742:243:280:-;;;;;;;;;;-1:-1:-1;6742:243:280;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2317:49:84:-;;;;;;;;;;-1:-1:-1;2317:49:84;2362:4;2317:49;;7744:219:278;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1819:58:88:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:88;;;;;4706:154:280;;;;;;;;;;-1:-1:-1;4706:154:280;;;;;:::i;:::-;;:::i;:::-;;;;;;31251:13:486;;-1:-1:-1;;;;;31247:39:486;31229:58;;31343:4;31331:17;;;31325:24;31303:20;;;31296:54;31406:4;31394:17;;;31388:24;31366:20;;;31359:54;31469:4;31457:17;;;31451:24;31429:20;;;31422:54;;;;31216:3;31201:19;;31018:464;4470:200:280;;;;;;;;;;-1:-1:-1;4470:200:280;;;;;:::i;:::-;;:::i;2302:122::-;;;;;;;;;;-1:-1:-1;2302:122:280;;;;;:::i;:::-;;:::i;15600:300:278:-;;;;;;:::i;:::-;;:::i;9623:214::-;;;;;;:::i;:::-;;:::i;5662:138:84:-;;;;;;;;;;-1:-1:-1;5662:138:84;;;;;:::i;:::-;;:::i;13353:677:278:-;;;;;;:::i;:::-;;:::i;:::-;;;;32497:25:486;;;32553:2;32538:18;;32531:34;;;;32470:18;13353:677:278;32323:248:486;12274:424:278;;;;;;:::i;:::-;;:::i;10217:259::-;;;;;;:::i;:::-;;:::i;5059:661::-;;;;;;;;;;-1:-1:-1;5059:661:278;;;;;:::i;:::-;;:::i;12058:184::-;;;;;;:::i;:::-;;:::i;8721:284::-;;;;;;:::i;:::-;;:::i;8211:256::-;;;;;;:::i;:::-;;:::i;12730:251::-;;;;;;:::i;:::-;;:::i;3443:202:84:-;3528:4;-1:-1:-1;;;;;;3551:47:84;;-1:-1:-1;;;3551:47:84;;:87;;-1:-1:-1;;;;;;;;;;1134:40:95;;;3602:36:84;3544:94;3443:202;-1:-1:-1;;3443:202:84:o;6468:238:280:-;6588:46;;:::i;:::-;6657:42;;-1:-1:-1;;;6657:42:280;;:15;;:27;;:42;;6685:5;;6692:6;;6657:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14678:256:278:-;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;14850:34:278::2;::::0;-1:-1:-1;;;14850:34:278;;:26:::2;::::0;::::2;::::0;:34:::2;::::0;:5:::2;::::0;14877:6;;14850:34:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;14894:33:278::2;::::0;-1:-1:-1;;;14894:33:278;;:25:::2;::::0;-1:-1:-1;14894:25:278::2;::::0;-1:-1:-1;14894:33:278::2;::::0;:5:::2;::::0;14920:6;;14894:33:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;3437:20:94::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:94;3860:283;3437:20;14678:256:278;:::o;7146:259::-;2362:4:84;6331:26:278;2362:4:84;6346:10:278;6331:8;:26::i;:::-;6326:115;;6380:50;;-1:-1:-1;;;6380:50:278;;6413:10;6380:50;;;39623:51:486;39690:18;;;39683:34;;;39596:18;;6380:50:278;;;;;;;;6326:115;7321:34:::1;::::0;-1:-1:-1;;;7321:34:278;;:26:::1;::::0;::::1;::::0;:34:::1;::::0;:5:::1;::::0;7348:6;;7321:34:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7365:33:278::1;::::0;-1:-1:-1;;;7365:33:278;;:25:::1;::::0;-1:-1:-1;7365:25:278::1;::::0;-1:-1:-1;7365:33:278::1;::::0;:5:::1;::::0;7391:6;;7365:33:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7146:259:::0;;:::o;4234:196:280:-;4314:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4314:27:280;-1:-1:-1;;;;;;4360:43:280;:5;:43;;;:37;:43;;;;;;;;;4353:70;;;;;;;4360:63;;;4353:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4234:196::o;7995:180:278:-;8084:84;8102:65;;;;;;;;8135:6;8102:65;;;;;;;;;;:::i;:::-;;;8155:10;8102:65;;;;;8084:17;:84::i;6284:148:280:-;-1:-1:-1;;;;;6382:22:280;;6359:4;6382:22;;;:10;:22;;;;;;;;:41;;;;;;;:34;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:43;;:41;;:34;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:43::i;5100:170::-;5190:7;5216:47;5190:7;5249:6;5257:5;5216:32;:47::i;:::-;5209:54;5100:170;-1:-1:-1;;;5100:170:280:o;15236:332:278:-;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;15452:50:278::2;::::0;-1:-1:-1;;;15452:50:278;;:34:::2;::::0;::::2;::::0;:50:::2;::::0;:5:::2;::::0;15487:14;;15452:50:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;15512:49:278::2;::::0;-1:-1:-1;;;15512:49:278;;:33:::2;::::0;-1:-1:-1;15512:33:278::2;::::0;-1:-1:-1;15512:49:278::2;::::0;:5:::2;::::0;15546:14;;15512:49:::2;;;:::i;2460:172:280:-:0;2547:7;2573:52;2547:7;2618:6;2573:44;:52::i;2668:125::-;2712:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:32:280;2763:23;;-1:-1:-1;;;2763:23:280;;:5;:23;;;7795:25:486;2763:21:280;;;;7768:18:486;;2763:23:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2756:30;;2668:125;:::o;5812:248::-;5989:64;;-1:-1:-1;;;5989:64:280;;5959:7;5989:64;;;43193:25:486;;;-1:-1:-1;;;;;43292:15:486;;;43272:18;;;43265:43;43324:18;;;43317:34;;;43387:15;;43367:18;;;43360:43;43419:19;;;43412:35;;;5959:7:280;5989:23;;;;43165:19:486;;5989:64:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5982:71;5812:248;-1:-1:-1;;;;;5812:248:280:o;4759:191:84:-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:84;;;;;:24;;;;4759:191::o;8499:186:278:-;8592:86;8611:66;;;;;;;;8645:6;8611:66;;;;;;;;;;:::i;:::-;;;8665:10;8611:66;;;;;8592:18;:86::i;5310:178:280:-;5404:7;5430:51;5404:7;5465:8;5475:5;5430:34;:51::i;14966:234:278:-;15083:110;15114:78;;;;;;;;15160:6;15114:78;;;:::i;:::-;;;15180:10;15114:78;;;;;15083:30;:110::i;5246:136:84:-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;:::-;;5246:136:::0;;;:::o;6348:245::-;-1:-1:-1;;;;;6441:34:84;;966:10:91;6441:34:84;6437:102;;6498:30;;-1:-1:-1;;;6498:30:84;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;:::-;;6348:245;;:::o;9037:210:278:-;9142:98;9167:72;;;;;;;;9207:6;9167:72;;;:::i;:::-;;;9227:10;9167:72;;;;;9142:24;:98::i;11326:484::-;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;11534:46:278::2;::::0;-1:-1:-1;;;11534:46:278;;:30:::2;::::0;::::2;::::0;:46:::2;::::0;:5:::2;::::0;11565:14;;11534:46:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;11590:45:278::2;::::0;-1:-1:-1;;;11590:45:278;;:29:::2;::::0;-1:-1:-1;11590:29:278::2;::::0;-1:-1:-1;11590:45:278::2;::::0;:5:::2;::::0;11620:14;;11590:45:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;-1:-1:-1::0;;11649:14:278::2;:21;;;:38;;;:53:::0;11645:159:::2;;11767:25;::::0;::::2;::::0;11718:75:::2;::::0;-1:-1:-1;;;11718:75:278;;:5:::2;:75;::::0;::::2;45408:25:486::0;-1:-1:-1;;;;;45469:32:486;;;45449:18;;;45442:60;11718:48:278::2;::::0;::::2;::::0;45381:18:486;;11718:75:278::2;45200:308:486::0;11645:159:278::2;3437:20:94::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:94;3860:283;14292:354:278;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;14509:25:278::2;::::0;::::2;::::0;6799:33:::2;::::0;-1:-1:-1;;;6799:33:278;;6767:29:::2;6799:33;::::0;::::2;45408:25:486::0;;;-1:-1:-1;;;;;45469:32:486;;45449:18;;;45442:60;6767:29:278;6799:21:::2;::::0;::::2;::::0;45381:18:486;;6799:33:278::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14550:40:::3;::::0;-1:-1:-1;;;14550:40:278;;6767:65;;-1:-1:-1;14550:24:278::3;::::0;::::3;::::0;:40:::3;::::0;:5:::3;::::0;14575:14;;14550:40:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;14600:39:278::3;::::0;-1:-1:-1;;;14600:39:278;;:23:::3;::::0;-1:-1:-1;14600:23:278::3;::::0;-1:-1:-1;14600:39:278::3;::::0;:5:::3;::::0;14624:14;;14600:39:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;6884:33:278::2;::::0;-1:-1:-1;;;6884:33:278;;6853:28:::2;6884:33;::::0;::::2;45408:25:486::0;;;-1:-1:-1;;;;;45469:32:486;;45449:18;;;45442:60;6853:28:278;-1:-1:-1;6884:21:278::2;::::0;-1:-1:-1;6884:21:278::2;::::0;45381:18:486;;6884:33:278::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6853:64;;6955:21;6931:20;:45;6927:176;;6999:93;::::0;-1:-1:-1;;;6999:93:278;;-1:-1:-1;;;;;46344:32:486;;6999:93:278::2;::::0;::::2;46326:51:486::0;46393:18;;;46386:34;;;46436:18;;;46429:34;;;46299:18;;6999:93:278::2;46124:345:486::0;6927:176:278::2;6757:352;;2008:1:93;3437:20:94::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:94;3860:283;7591:116:278;978:24:269;6331:26:278;6340:4;6346:10;6331:8;:26::i;:::-;6326:115;;6380:50;;-1:-1:-1;;;6380:50:278;;6413:10;6380:50;;;39623:51:486;39690:18;;;39683:34;;;39596:18;;6380:50:278;39449:274:486;6326:115:278;7690:10:::1;:8;:10::i;6100:144:280:-:0;-1:-1:-1;;;;;6196:22:280;;6173:4;6196:22;;;:10;:22;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:41::i;4161:214:88:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;9873:312:278:-;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;10079:45:278::2;::::0;-1:-1:-1;;;10079:45:278;;:29:::2;::::0;::::2;::::0;:45:::2;::::0;:5:::2;::::0;10109:14;;10079:45:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;10134:44:278::2;::::0;-1:-1:-1;;;10134:44:278;;:28:::2;::::0;-1:-1:-1;10134:28:278::2;::::0;-1:-1:-1;10134:44:278::2;::::0;:5:::2;::::0;10163:14;;10134:44:::2;;;:::i;16320:190::-:0;16417:86;16436:66;;;;;;;;16470:6;16436:66;;;;;;;;;;:::i;:::-;;;16490:10;16436:66;;;;;16417:18;:86::i;3708:134:88:-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:88;:::o;13017:304:278:-;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;13219:43:278::2;::::0;;-1:-1:-1;;;13219:43:278;;:5:::2;:43;::::0;::::2;48853:25:486::0;48920:13;;48914:20;48894:18;;;48887:48;48909:2;48970:15;;48964:22;-1:-1:-1;;;;;49060:21:486;;;49040:18;;;49033:49;49128:15;;;49122:22;49118:31;;;49098:18;;;49091:59;13219:27:278::2;::::0;::::2;::::0;48825:19:486;;13219:43:278::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;13272:42:278::2;::::0;;-1:-1:-1;;;13272:42:278;;:5:::2;:42;::::0;::::2;48853:25:486::0;48920:13;;48914:20;48894:18;;;48887:48;48909:2;48970:15;;48964:22;-1:-1:-1;;;;;49060:21:486;;;49040:18;;;49033:49;49128:15;;;49122:22;49118:31;;;49098:18;;;49091:59;13272:26:278::2;::::0;-1:-1:-1;13272:26:278::2;::::0;-1:-1:-1;48825:19:486;;13272:42:278::2;48546:610:486::0;9283:308:278;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;9487:44:278::2;::::0;-1:-1:-1;;;9487:44:278;;:28:::2;::::0;::::2;::::0;:44:::2;::::0;:5:::2;::::0;9516:14;;9487:44:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;9541:43:278::2;::::0;-1:-1:-1;;;9541:43:278;;:27:::2;::::0;-1:-1:-1;9541:27:278::2;::::0;-1:-1:-1;9541:43:278::2;::::0;:5:::2;::::0;9569:14;;9541:43:::2;;;:::i;3769:425:280:-:0;3844:15;;:::i;:::-;-1:-1:-1;;;;;;;;;;;4476:9:94;1991:1;4476:20;394:93:277;;446:30;;-1:-1:-1;;;446:30:277;;;;;;;;;;;394:93;3878:309:280::1;::::0;;-1:-1:-1;;;;;3907:22:280;::::1;-1:-1:-1::0;3907:22:280;;;:10:::1;:22;::::0;;;;;;;3878:309;;;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;3907:22;;3878:309;;;;;;;;;;;;;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;3878:309:280;;;;-1:-1:-1;;;3878:309:280;;-1:-1:-1;3878:309:280;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;;;;::::0;;;;;;;;-1:-1:-1;;;;;3878:309:280;;::::1;::::0;;::::1;::::0;;;3994:26;;:42;;-1:-1:-1;;;3994:42:280;;::::1;::::0;::::1;49749:51:486::0;;;;3878:309:280;;;;;3994:26;;::::1;::::0;:36:::1;::::0;49722:18:486;;3994:42:280::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3878:309:::0;;4070:27;;:43:::1;::::0;-1:-1:-1;;;4070:43:280;;-1:-1:-1;;;;;49767:32:486;;;4070:43:280::1;::::0;::::1;49749:51:486::0;3878:309:280::1;::::0;;::::1;::::0;4070:27;;::::1;::::0;:37:::1;::::0;49722:18:486;;4070:43:280::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3878:309:::0;;4140:20;;:36:::1;::::0;-1:-1:-1;;;4140:36:280;;-1:-1:-1;;;;;49767:32:486;;;4140:36:280::1;::::0;::::1;49749:51:486::0;3878:309:280::1;::::0;;::::1;::::0;4140:20;;::::1;::::0;:30:::1;::::0;49722:18:486;;4140:36:280::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3878:309:::0;;3871:316;-1:-1:-1;496:1:277::1;3769:425:280::0;;;:::o;5756:126:278:-;2362:4:84;3191:16;2362:4;3191:10;:16::i;:::-;5832:7:278::1;6355:30:87;6388:26;:24;:26::i;:::-;6429:15:::0;;;;-1:-1:-1;;;;6429:15:87;::::1;;;::::0;:44:::1;;-1:-1:-1::0;6448:14:87;;-1:-1:-1;;;;;6448:25:87;;::::1;:14:::0;::::1;:25;;6429:44;6425:105;;;6496:23;;-1:-1:-1::0;;;6496:23:87::1;;;;;;;;;;;6425:105;6539:24:::0;;-1:-1:-1;;6573:22:87;-1:-1:-1;;;;;6539:24:87;::::1;6573:22:::0;-1:-1:-1;;;6573:22:87::1;::::0;;5851:24:278::2;:22;:24::i;:::-;6616:23:87::0;;-1:-1:-1;;;;6616:23:87::1;::::0;;6654:20:::1;::::0;-1:-1:-1;;;;;49973:31:486;;49955:50;;6654:20:87::1;::::0;49943:2:486;49928:18;6654:20:87::1;;;;;;;6289:392;3217:1:84;5756:126:278::0;:::o;5528:244:280:-;5703:62;;-1:-1:-1;;;5703:62:280;;5673:7;5703:62;;;43193:25:486;;;-1:-1:-1;;;;;43292:15:486;;;43272:18;;;43265:43;43324:18;;;43317:34;;;43387:15;;43367:18;;;43360:43;43419:19;;;43412:35;;;5673:7:280;5703:21;;;;43165:19:486;;5703:62:280;42900:553:486;16546:284:278;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;16738:38:278::2;::::0;-1:-1:-1;;;16738:38:278;;:5:::2;:38;::::0;::::2;50313:25:486::0;50357:13;;50448:9;;-1:-1:-1;;;;;50444:18:486;;;50424;;;50417:46;50439:2;50519:11;;;50513:18;50506:26;50499:34;50479:18;;;50472:62;50580:15;;;50574:22;50570:31;50550:18;;;50543:59;16738:22:278::2;::::0;::::2;::::0;50285:19:486;;16738:38:278::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;16786:37:278::2;::::0;-1:-1:-1;;;16786:37:278;;:5:::2;:37;::::0;::::2;50313:25:486::0;50357:13;;50448:9;;-1:-1:-1;;;;;50444:18:486;;;50424;;;50417:46;50439:2;50519:11;;;50513:18;50506:26;50499:34;50479:18;;;50472:62;50580:15;;;50574:22;50570:31;50550:18;;;50543:59;16786:21:278::2;::::0;-1:-1:-1;16786:21:278::2;::::0;-1:-1:-1;50285:19:486;;16786:37:278::2;50016:592:486::0;4896:164:280;4972:21;;:::i;:::-;5012:41;;-1:-1:-1;;;5012:41:280;;:5;:41;;;32497:25:486;32538:18;;;32531:34;;;5012:23:280;;;;32470:18:486;;5012:41:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5005:48;;;;;;;;;;-1:-1:-1;;;;;5005:48:280;;;;-1:-1:-1;;;5005:48:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4896:164:280:o;15936:348:278:-;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;16160:54:278::2;::::0;-1:-1:-1;;;16160:54:278;;:38:::2;::::0;::::2;::::0;:54:::2;::::0;:5:::2;::::0;16199:14;;16160:54:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;16224:53:278::2;::::0;-1:-1:-1;;;16224:53:278;;:37:::2;::::0;-1:-1:-1;16224:37:278::2;::::0;-1:-1:-1;16224:53:278::2;::::0;:5:::2;::::0;16262:14;;16224:53:::2;;;:::i;2829:128:280:-:0;2874:33;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2874:33:280;2926:24;;-1:-1:-1;;;2926:24:280;;:5;:24;;;7795:25:486;2926:22:280;;;;7768:18:486;;2926:24:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2993:116::-;-1:-1:-1;;;;;;;;;;;;;;;;;3082:20:280;;-1:-1:-1;;;3082:20:280;;:5;:20;;;7795:25:486;3082:18:280;;;;7768::486;;3082:20:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11842:184:278:-;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;11956:27:278::2;::::0;-1:-1:-1;;;11956:27:278;;:19:::2;::::0;::::2;::::0;:27:::2;::::0;:5:::2;::::0;11976:6;;11956:27:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;11993:26:278::2;::::0;-1:-1:-1;;;11993:26:278;;:18:::2;::::0;-1:-1:-1;11993:18:278::2;::::0;-1:-1:-1;11993:26:278::2;::::0;:5:::2;::::0;12012:6;;11993:26:::2;;;:::i;10512:485::-:0;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;10718:45:278::2;::::0;-1:-1:-1;;;10718:45:278;;:29:::2;::::0;::::2;::::0;:45:::2;::::0;:5:::2;::::0;10748:14;;10718:45:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;10773:44:278::2;::::0;-1:-1:-1;;;10773:44:278;;:28:::2;::::0;-1:-1:-1;10773:28:278::2;::::0;-1:-1:-1;10773:44:278::2;::::0;:5:::2;::::0;10802:14;;10773:44:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;-1:-1:-1::0;;10831:14:278::2;:21;;;:38;;;:53:::0;10827:164:::2;;10949:21:::0;;:30;10900:80:::2;::::0;-1:-1:-1;;;10900:80:278;;:5:::2;:80;::::0;::::2;45408:25:486::0;-1:-1:-1;;;;;45469:32:486;;;45449:18;;;45442:60;10900:48:278::2;::::0;::::2;::::0;45381:18:486;;10900:80:278::2;45200:308:486::0;7442:112:278;978:24:269;6331:26:278;6340:4;6346:10;6331:8;:26::i;:::-;6326:115;;6380:50;;-1:-1:-1;;;6380:50:278;;6413:10;6380:50;;;39623:51:486;39690:18;;;39683:34;;;39596:18;;6380:50:278;39449:274:486;6326:115:278;7539:8:::1;:6;:8::i;14062:194::-:0;14159:90;14180:68;;;;;;;;14216:6;14180:68;;;;;;;;;;:::i;:::-;;;14236:10;14180:68;;;;;14159:20;:90::i;11029:261::-;11136:147;11176:97;;;;;;;;11218:6;11176:97;;;;11238:10;-1:-1:-1;;;;;11176:97:278;;;;;11261:10;-1:-1:-1;;;;;11176:97:278;;;;11136:26;:147::i;3732:207:84:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:84;;;;;;;;-1:-1:-1;;;;;3901:31:84;;;;;;;;;;;;;;;3732:207::o;6742:243:280:-;6864:48;;:::i;:::-;6935:43;;-1:-1:-1;;;6935:43:280;;:16;;:28;;:43;;6964:5;;6971:6;;6935:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7744:219:278:-;7886:22;1979:19:93;:17;:19::i;:::-;7934:22:278::1;:5;7950::::0;;7934:15:::1;:22::i;4706:154:280:-:0;4778:19;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4778:19:280;4816:37;;-1:-1:-1;;;4816:37:280;;:5;:37;;;32497:25:486;32538:18;;;32531:34;;;4816:21:280;;;;32470:18:486;;4816:37:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4809:44;;;;;;;;;;-1:-1:-1;;;;;4809:44:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4706:154;-1:-1:-1;;4706:154:280:o;4470:200::-;4552:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4552:27:280;-1:-1:-1;;;;;;4598:43:280;:5;:43;;;:37;:43;;;;;;;;;4591:72;;;;;;;4598:65;;;4591:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4470:200::o;2302:122::-;2390:27;;-1:-1:-1;;;2390:27:280;;2364:7;2390:27;;;45408:25:486;;;-1:-1:-1;;;;;45469:32:486;;45449:18;;;45442:60;2364:7:280;2390:21;;;;45381:18:486;;2390:27:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15600:300:278:-;15753:140;15801:82;;;;;;;;15851:6;15801:82;;;;;;;;;;:::i;:::-;;;15871:10;15801:82;;;;;15753:34;:140::i;9623:214::-;9730:100;9756:73;;;;;;;;9797:6;9756:73;;;:::i;:::-;;;9817:10;9756:73;;;;;9730:25;:100::i;5662:138:84:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;13353:677:278:-:0;13602:39;13643:35;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;921:24:269::2;6331:26:278;6340:4;6346:10;6331:8;:26::i;:::-;6326:115;;6380:50;::::0;-1:-1:-1;;;6380:50:278;;6413:10:::2;6380:50;::::0;::::2;39623:51:486::0;39690:18;;;39683:34;;;39596:18;;6380:50:278::2;39449:274:486::0;6326:115:278::2;13694:46:::3;::::0;-1:-1:-1;;;13694:46:278;;:38:::3;::::0;::::3;::::0;:46:::3;::::0;:5:::3;::::0;13733:6;;13694:46:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;13815:45:278::3;::::0;-1:-1:-1;;;13815:45:278;;:37:::3;::::0;-1:-1:-1;13815:37:278::3;::::0;-1:-1:-1;13815:45:278::3;::::0;:5:::3;::::0;13853:6;;13815:45:::3;;;:::i;:::-;;::::0;::::3;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13750:110:::0;;-1:-1:-1;13750:110:278;-1:-1:-1;13870:48:278::3;;:5;13919:15;::::0;;;::::3;::::0;::::3;;:::i;:::-;13870:65;::::0;-1:-1:-1;;;;;;13870:65:278::3;::::0;;;;;;::::3;::::0;::::3;45408:25:486::0;;;;-1:-1:-1;;;;;45469:32:486;45449:18;;;45442:60;45381:18;;13870:65:278::3;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;13945:78:278::3;::::0;-1:-1:-1;;;13945:78:278;;:37:::3;::::0;-1:-1:-1;13945:37:278::3;::::0;-1:-1:-1;13945:78:278::3;::::0;:5:::3;::::0;13983:6;;13991:31;;13945:78:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;2008:1:93::2;3437:20:94::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:94;3860:283;3437:20;13353:677:278;;;:::o;12274:424::-;12443:39;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;12498:31:278::2;::::0;-1:-1:-1;;;12498:31:278;;:23:::2;::::0;::::2;::::0;:31:::2;::::0;:5:::2;::::0;12522:6;;12498:31:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;12573:30:278::2;::::0;-1:-1:-1;;;12573:30:278;;:22:::2;::::0;-1:-1:-1;12573:22:278::2;::::0;-1:-1:-1;12573:30:278::2;::::0;:5:::2;::::0;12596:6;;12573:30:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12613:78;::::0;-1:-1:-1;;;12613:78:278;;12539:64;;-1:-1:-1;12613:37:278::2;::::0;::::2;::::0;:78:::2;::::0;:5:::2;::::0;12651:6;;12539:64;;12613:78:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;3437:20:94::0;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:94;3860:283;10217:259:278;10324:145;10363:96;;;;;;;;10404:6;10363:96;;;;;;;;;;:::i;:::-;;;10424:10;10363:96;;;;;;;;;;;10324:25;:145::i;5059:661::-;4158:30:87;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:87;-1:-1:-1;;;4302:15:87;;;4301:16;;-1:-1:-1;;;;;4348:14:87;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:87;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:87;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:87;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:87;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:87;-1:-1:-1;;;5011:22:87;;;4977:67;5316:43:278::1;::::0;-1:-1:-1;;;5316:43:278;;:24:::1;::::0;::::1;::::0;:43:::1;::::0;:5:::1;::::0;5341;;5348:1;;5351;;5354;;5357;;5316:43:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5370:22;:20;:22::i;:::-;5402:17;:15;:17::i;:::-;5429:24;:22;:24::i;:::-;5463;:22;:24::i;:::-;5498:35;::::0;-1:-1:-1;;;5498:35:278;;:23:::1;::::0;::::1;::::0;:35:::1;::::0;:5:::1;::::0;5522:1;;5525;;5528;;5531;;5498:35:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5543:37;2362:4:84;5554:18:278::0;::::1;5574:5;5543:10;:37::i;:::-;;5590:30;978:24:269;5614:5:278;5590:10;:30::i;:::-;;5630;921:24:269;5654:5:278;5630:10;:30::i;:::-;;5670:43;1048:37:269;5707:5:278;5670:10;:43::i;:::-;;5068:14:87::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:87;;;5140:14;;-1:-1:-1;49955:50:486;;5140:14:87;;49943:2:486;49928:18;5140:14:87;;;;;;;5064:101;4092:1079;;;;;5059:661:278;;;;;:::o;12058:184::-;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;12172:27:278::2;::::0;-1:-1:-1;;;12172:27:278;;:5:::2;:27;::::0;::::2;63985:25:486::0;64046:20;;64026:18;;;64019:48;12172:19:278::2;::::0;::::2;::::0;63958:18:486;;12172:27:278::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;12209:26:278::2;::::0;-1:-1:-1;;;12209:26:278;;:5:::2;:26;::::0;::::2;63985:25:486::0;64046:20;;64026:18;;;64019:48;12209:18:278::2;::::0;-1:-1:-1;12209:18:278::2;::::0;-1:-1:-1;63958:18:486;;12209:26:278::2;63713:360:486::0;8721:284:278;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;8913:38:278::2;::::0;-1:-1:-1;;;8913:38:278;;:22:::2;::::0;::::2;::::0;:38:::2;::::0;:5:::2;::::0;8936:14;;8913:38:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;8961:37:278::2;::::0;-1:-1:-1;;;8961:37:278;;:21:::2;::::0;-1:-1:-1;8961:21:278::2;::::0;-1:-1:-1;8961:37:278::2;::::0;:5:::2;::::0;8983:14;;8961:37:::2;;;:::i;8211:256::-:0;3395:21:94;:19;:21::i;:::-;1979:19:93::1;:17;:19::i;:::-;8393:29:278::2;::::0;-1:-1:-1;;;8393:29:278;;:21:::2;::::0;::::2;::::0;:29:::2;::::0;:5:::2;::::0;8415:6;;8393:29:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;8432:28:278::2;::::0;-1:-1:-1;;;8432:28:278;;:20:::2;::::0;-1:-1:-1;8432:20:278::2;::::0;-1:-1:-1;8432:28:278::2;::::0;:5:::2;::::0;8453:6;;8432:28:::2;;;:::i;12730:251::-:0;12833:141;12870:94;;;;;;;;12909:6;12870:94;;;;;;;;;;:::i;:::-;;;12929:10;12870:94;;;;;;;;;;;12833:23;:141::i;3470:384:94:-;-1:-1:-1;;;;;;;;;;;3670:9:94;;-1:-1:-1;;3670:20:94;3666:88;;3713:30;;-1:-1:-1;;;3713:30:94;;;;;;;;;;;3666:88;1991:1;3828:19;;3470:384::o;2709:128:93:-;-1:-1:-1;;;;;;;;;;;2625:9:93;;;2770:61;;;2805:15;;-1:-1:-1;;;2805:15:93;;;;;;;;;;;2770:61;2709:128::o;3860:283:94:-;1949:1;-1:-1:-1;;;;;;;;;;;4113:23:94;3860:283::o;5888:370:278:-;5960:4;5980:22;5988:4;5994:7;5980;:22::i;:::-;5976:276;;;-1:-1:-1;6025:4:278;6018:11;;5976:276;6058:22;;-1:-1:-1;;;;;6058:22:278;6046:206;;-1:-1:-1;6118:5:278;6111:12;;6046:206;6194:22;;6161:80;;-1:-1:-1;;;6161:80:278;;;;;45408:25:486;;;-1:-1:-1;;;;;45469:32:486;;;45449:18;;;45442:60;6194:22:278;;;;6161:65;;45381:18:486;;6161:80:278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6154:87;;;;1572:148:296;1658:15;;1635:4;;1658:20;:55;;;;;1682:31;:4;:22;;;:29;:31::i;4925:255::-;-1:-1:-1;;;;;5133:22:296;;5058:11;5133:22;;;:10;;;:22;;;;;;;;5092:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5120:5;;5127:4;;5133:22;5092:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5167:5;5092:27;:81::i;:::-;5085:88;4925:255;-1:-1:-1;;;;4925:255:296:o;1087:477:290:-;1228:29;1297:260;1348:5;:12;;:22;;;;;;;;;;-1:-1:-1;;;;;1348:22:290;-1:-1:-1;;;;;1348:31:290;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1342:39;;:2;:39;:::i;:::-;1324:57;;:15;:57;:::i;:::-;1401:36;;;;:47;;;-1:-1:-1;;;1401:47:290;;;;-1:-1:-1;;;;;1401:36:290;;;;:45;;:47;;;;;;;;;;;;;;;:36;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1395:53;;:2;:53;:::i;:::-;1504:32;;;;:43;;;-1:-1:-1;;;1504:43:290;;;;-1:-1:-1;;;;;1504:32:290;;;;:41;;:43;;;;;;;;;;;;;;;:32;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1498:49;;:2;:49;:::i;:::-;1462:12;;;:22;:33;;;-1:-1:-1;;;1462:33:290;;;;-1:-1:-1;;;;;1462:22:290;;;;:31;;:33;;;;;;;;;;;;;;;:22;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:85;;;;:::i;:::-;1297:13;:260::i;4660:259:296:-;-1:-1:-1;;;;;4870:22:296;;4795:11;4870:22;;;:10;;;:22;;;;;;;;4829:83;;;;;;;4870:34;;;4829:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4857:5;;4864:4;;4829:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4906:5;4829:27;:83::i;4148:103:84:-;4214:30;4225:4;966:10:91;4214::84;:30::i;7270:387::-;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:84;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:84;;;;;;;;;:38;;-1:-1:-1;;7475:38:84;7509:4;7475:38;;;7559:12;966:10:91;;887:96;7559:12:84;-1:-1:-1;;;;;7532:40:84;7550:7;-1:-1:-1;;;;;7532:40:84;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7894:388;7972:4;-1:-1:-1;;;;;;;;;;;8061:22:84;8069:4;8075:7;8061;:22::i;:::-;8057:219;;;8133:5;8099:14;;;;;;;;;;;-1:-1:-1;;;;;8099:31:84;;;;;;;;;;:39;;-1:-1:-1;;8099:39:84;;;8157:40;966:10:91;;8099:14:84;;8157:40;;8133:5;8157:40;8218:4;8211:11;;;;;3478:178:93;2226:16;:14;:16::i;:::-;-1:-1:-1;;;;;;;;;;;3595:17:93;;-1:-1:-1;;3595:17:93::1;::::0;;3627:22:::1;966:10:91::0;3636:12:93::1;3627:22;::::0;-1:-1:-1;;;;;49767:32:486;;;49749:51;;49737:2;49722:18;3627:22:93::1;;;;;;;3526:130;3478:178::o:0;4578:312:88:-;4658:4;-1:-1:-1;;;;;4667:6:88;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:88;:32;-1:-1:-1;;;;;;;;;;;1519:53:111;-1:-1:-1;;;;;1519:53:111;;1441:138;4728:32:88;-1:-1:-1;;;;;4728:42:88;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:88;;;;;;;;;;;6464:151:278;2362:4:84;6331:26:278;2362:4:84;6346:10:278;6331:8;:26::i;:::-;6326:115;;6380:50;;-1:-1:-1;;;6380:50:278;;6413:10;6380:50;;;39623:51:486;39690:18;;;39683:34;;;39596:18;;6380:50:278;39449:274:486;6032:538:88;6149:17;-1:-1:-1;;;;;6131:50:88;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:88;;;;;;;;-1:-1:-1;;6131:52:88;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:88;;-1:-1:-1;;;;;49767:32:486;;6493:60:88;;;49749:51:486;49722:18;;6493:60:88;49603:203:486;6127:437:88;-1:-1:-1;;;;;;;;;;;6225:40:88;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:88;;;;;7795:25:486;;;7768:18;;6292:34:88;7649:177:486;6221:120:88;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:88;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:88;;;;;;;;;;;9071:205:87;9129:30;;3147:66;9186:27;8819:122;2684:111:94;6929:20:87;:18;:20::i;:::-;2754:34:94::1;:32;:34::i;3170:176:93:-:0;1979:19;:17;:19::i;:::-;-1:-1:-1;;;;;;;;;;;3288:16:93;;-1:-1:-1;;3288:16:93::1;3300:4;3288:16;::::0;;3319:20:::1;966:10:91::0;3326:12:93::1;887:96:91::0;1176:291:295;1251:22;1307:4;-1:-1:-1;;;;;1295:24:295;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1285:34;;1334:9;1329:132;1349:15;;;1329:132;;;1398:52;1435:4;1442;;1447:1;1442:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1398:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1398:28:295;;-1:-1:-1;;;1398:52:295:i;:::-;1385:7;1393:1;1385:10;;;;;;;;:::i;:::-;;;;;;;;;;:65;1366:3;;1329:132;;;;1176:291;;;;;:::o;3231:65:84:-;6929:20:87;:18;:20::i;1495:183:298:-;1581:11;;:18;1558:4;;1581:23;:48;;;;-1:-1:-1;1608:9:298;;;;:16;:21;1581:48;:90;;;;-1:-1:-1;;1633:26:298;;;:33;:38;;1495:183::o;5186:971:296:-;5350:11;5381:5;5390:1;5381:10;5377:67;;5414:19;;-1:-1:-1;;;5414:19:296;;;;;;;;;;;5377:67;5457:18;5464:10;5457:6;:18::i;:::-;5453:82;;;5498:26;;-1:-1:-1;;;5498:26:296;;-1:-1:-1;;;;;49767:32:486;;5498:26:296;;;49749:51:486;49722:18;;5498:26:296;49603:203:486;5453:82:296;5574:21;;5548:23;5566:5;5548:15;:23;:::i;:::-;:47;5544:174;;;5660:23;5678:5;5660:15;:23;:::i;:::-;5685:21;;5618:89;;-1:-1:-1;;;5618:89:296;;;;;32497:25:486;;;;32538:18;;;32531:34;32470:18;;5618:89:296;32323:248:486;5544:174:296;5772:311;;;;;;;;5839:35;;;;-1:-1:-1;;;;;5839:35:296;;5772:311;;-1:-1:-1;;;;;;;;5921:44:296;;;;5772:311;;;;;;;;-1:-1:-1;;;6020:52:296;;;;5772:311;;;;6100:28;;;:50;;-1:-1:-1;;;6100:50:296;;5772:311;;6100:35;;;;:50;;5772:311;;6144:5;;6100:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6093:57;5186:971;-1:-1:-1;;;;;;5186:971:296:o;618:142:294:-;692:7;718:35;745:1;748;751;718:26;:35::i;4381:197:84:-;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:84;;-1:-1:-1;;;;;39641:32:486;;4514:47:84;;;39623:51:486;39690:18;;;39683:34;;;39596:18;;4514:47:84;39449:274:486;2909:126:93;-1:-1:-1;;;;;;;;;;;2625:9:93;;;2967:62;;3003:15;;-1:-1:-1;;;3003:15:93;;;;;;;;;;;2264:344:111;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:111;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;7082:141:87:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:87;;;;;;;;;;;2801:183:94;6929:20:87;:18;:20::i;3916:253:125:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:125;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;25271:508:175:-;25345:9;25568:1;25564;25560:6;25556:14;25553:1;25550:21;25547:1;25543:29;25536:37;25533:1;25529:45;25519:169;;25607:10;25601:4;25594:24;25669:4;25663;25656:18;25519:169;-1:-1:-1;25749:9:175;;25724:17;;;25717:25;25710:33;25745:17;;;25706:57;;25271:508::o;1671:281:111:-;1748:17;-1:-1:-1;;;;;1748:29:111;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:111;;-1:-1:-1;;;;;49767:32:486;;1805:47:111;;;49749:51:486;49722:18;;1805:47:111;49603:203:486;1744:119:111;-1:-1:-1;;;;;;;;;;;1872:73:111;;-1:-1:-1;;;;;;1872:73:111;-1:-1:-1;;;;;1872:73:111;;;;;;;;;;1671:281::o;6113:122::-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:111;;;;;;;;;;;8485:120:87;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:87;;;;;;-1:-1:-1;8485:120:87:o;4437:582:125:-;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;:::-;4605:408;;;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:125;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:125;;-1:-1:-1;;;;;49767:32:486;;4933:24:125;;;49749:51:486;49722:18;;4933:24:125;49603:203:486;4853:119:125;-1:-1:-1;4992:10:125;4985:17;;5559:487;5690:17;;:21;5686:354;;5887:10;5881:17;5943:15;5930:10;5926:2;5922:19;5915:44;5686:354;6010:19;;-1:-1:-1;;;6010:19:125;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:286:486:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:486;;209:43;;199:71;;266:1;263;256:12;497:127;558:10;553:3;549:20;546:1;539:31;589:4;586:1;579:15;613:4;610:1;603:15;629:255;701:2;695:9;743:6;731:19;;-1:-1:-1;;;;;765:34:486;;801:22;;;762:62;759:88;;;827:18;;:::i;:::-;863:2;856:22;629:255;:::o;889:253::-;961:2;955:9;1003:4;991:17;;-1:-1:-1;;;;;1023:34:486;;1059:22;;;1020:62;1017:88;;;1085:18;;:::i;1147:257::-;1219:4;1213:11;;;1251:17;;-1:-1:-1;;;;;1283:34:486;;1319:22;;;1280:62;1277:88;;;1345:18;;:::i;1409:253::-;1481:2;1475:9;1523:4;1511:17;;-1:-1:-1;;;;;1543:34:486;;1579:22;;;1540:62;1537:88;;;1605:18;;:::i;1667:253::-;1739:2;1733:9;1781:4;1769:17;;-1:-1:-1;;;;;1801:34:486;;1837:22;;;1798:62;1795:88;;;1863:18;;:::i;1925:252::-;1997:2;1991:9;2039:3;2027:16;;-1:-1:-1;;;;;2058:34:486;;2094:22;;;2055:62;2052:88;;;2120:18;;:::i;2182:275::-;2253:2;2247:9;2318:2;2299:13;;-1:-1:-1;;2295:27:486;2283:40;;-1:-1:-1;;;;;2338:34:486;;2374:22;;;2335:62;2332:88;;;2400:18;;:::i;:::-;2436:2;2429:22;2182:275;;-1:-1:-1;2182:275:486:o;2462:131::-;-1:-1:-1;;;;;2537:31:486;;2527:42;;2517:70;;2583:1;2580;2573:12;2598:134;2666:20;;2695:31;2666:20;2695:31;:::i;2737:118::-;2823:5;2816:13;2809:21;2802:5;2799:32;2789:60;;2845:1;2842;2835:12;2860:128;2925:20;;2954:28;2925:20;2954:28;:::i;2993:798::-;3061:5;3109:6;3097:9;3092:3;3088:19;3084:32;3081:52;;;3129:1;3126;3119:12;3081:52;3151:22;;:::i;:::-;3142:31;;3196:29;3215:9;3196:29;:::i;:::-;3189:5;3182:44;3286:2;3275:9;3271:18;3258:32;3253:2;3246:5;3242:14;3235:56;3351:2;3340:9;3336:18;3323:32;3318:2;3311:5;3307:14;3300:56;3416:2;3405:9;3401:18;3388:32;3383:2;3376:5;3372:14;3365:56;3482:3;3471:9;3467:19;3454:33;3448:3;3441:5;3437:15;3430:58;3549:3;3538:9;3534:19;3521:33;3515:3;3508:5;3504:15;3497:58;3588:36;3619:3;3608:9;3604:19;3588:36;:::i;:::-;3582:3;3575:5;3571:15;3564:61;3686:3;3675:9;3671:19;3658:33;3652:3;3645:5;3641:15;3634:58;3711:3;3746:38;3780:2;3769:9;3765:18;3746:38;:::i;:::-;3730:14;;;3723:62;3734:5;2993:798;-1:-1:-1;;2993:798:486:o;3796:258::-;3896:6;3949:3;3937:9;3928:7;3924:23;3920:33;3917:53;;;3966:1;3963;3956:12;3917:53;3989:59;4040:7;4029:9;3989:59;:::i;4168:309::-;4252:12;;-1:-1:-1;;;;;4248:38:486;4236:51;;4350:4;4339:16;;;4333:23;4326:31;4319:39;4303:14;;;4296:63;4408:4;4397:16;;;4391:23;4375:14;;;4368:47;4464:4;4453:16;;;4447:23;4431:14;;4424:47;4168:309::o;4482:705::-;4660:4;4702:3;4691:9;4687:19;4679:27;;4715:58;4763:9;4754:6;4748:13;4715:58;:::i;:::-;4858:1;4854;4849:3;4845:11;4841:19;4833:4;4825:6;4821:17;4815:24;4811:50;4804:4;4793:9;4789:20;4782:80;4918:4;4910:6;4906:17;4900:24;4893:4;4882:9;4878:20;4871:54;4981:4;4973:6;4969:17;4963:24;4956:4;4945:9;4941:20;4934:54;5044:4;5036:6;5032:17;5026:24;5019:4;5008:9;5004:20;4997:54;5109:4;5101:6;5097:17;5091:24;5082:6;5071:9;5067:22;5060:56;5174:4;5166:6;5162:17;5156:24;5147:6;5136:9;5132:22;5125:56;4482:705;;;;:::o;5192:166::-;5263:5;5308:2;5299:6;5294:3;5290:16;5286:25;5283:45;;;5324:1;5321;5314:12;5283:45;-1:-1:-1;5346:6:486;5192:166;-1:-1:-1;5192:166:486:o;5363:262::-;5462:6;5515:2;5503:9;5494:7;5490:23;5486:32;5483:52;;;5531:1;5528;5521:12;5483:52;5554:65;5611:7;5600:9;5554:65;:::i;5630:166::-;5701:5;5746:2;5737:6;5732:3;5728:16;5724:25;5721:45;;;5762:1;5759;5752:12;5801:380;5900:6;5953:2;5941:9;5932:7;5928:23;5924:32;5921:52;;;5969:1;5966;5959:12;5921:52;6009:9;5996:23;-1:-1:-1;;;;;6034:6:486;6031:30;6028:50;;;6074:1;6071;6064:12;6028:50;6097:78;6167:7;6158:6;6147:9;6143:22;6097:78;:::i;6186:247::-;6245:6;6298:2;6286:9;6277:7;6273:23;6269:32;6266:52;;;6314:1;6311;6304:12;6266:52;6353:9;6340:23;6372:31;6397:5;6372:31;:::i;6772:290::-;6986:3;6971:19;;6999:57;6975:9;7038:6;6530:5;6524:12;6519:3;6512:25;6586:4;6579:5;6575:16;6569:23;6562:4;6557:3;6553:14;6546:47;6642:4;6635:5;6631:16;6625:23;6618:4;6613:3;6609:14;6602:47;6698:4;6691:5;6687:16;6681:23;6674:4;6669:3;6665:14;6658:47;6754:4;6747:5;6743:16;6737:23;6730:4;6725:3;6721:14;6714:47;;;6438:329;7329:315;7397:6;7405;7458:2;7446:9;7437:7;7433:23;7429:32;7426:52;;;7474:1;7471;7464:12;7426:52;7513:9;7500:23;7532:31;7557:5;7532:31;:::i;:::-;7582:5;7634:2;7619:18;;;;7606:32;;-1:-1:-1;;;7329:315:486:o;7831:183::-;7891:4;-1:-1:-1;;;;;7916:6:486;7913:30;7910:56;;;7946:18;;:::i;:::-;-1:-1:-1;7991:1:486;7987:14;8003:4;7983:25;;7831:183::o;8019:668::-;8073:5;8126:3;8119:4;8111:6;8107:17;8103:27;8093:55;;8144:1;8141;8134:12;8093:55;8180:6;8167:20;8206:4;8230:60;8246:43;8286:2;8246:43;:::i;:::-;8230:60;:::i;:::-;8312:3;8336:2;8331:3;8324:15;8364:4;8359:3;8355:14;8348:21;;8421:4;8415:2;8412:1;8408:10;8400:6;8396:23;8392:34;8378:48;;8449:3;8441:6;8438:15;8435:35;;;8466:1;8463;8456:12;8435:35;8502:4;8494:6;8490:17;8516:142;8532:6;8527:3;8524:15;8516:142;;;8598:17;;8586:30;;8636:12;;;;8549;;8516:142;;;-1:-1:-1;8676:5:486;8019:668;-1:-1:-1;;;;;;8019:668:486:o;8692:710::-;8765:5;8813:4;8801:9;8796:3;8792:19;8788:30;8785:50;;;8831:1;8828;8821:12;8785:50;8853:22;;:::i;:::-;8844:31;;8911:9;8898:23;8891:5;8884:38;8974:2;8963:9;8959:18;8946:32;8987:30;9009:7;8987:30;:::i;:::-;9044:2;9033:14;;9026:31;9109:2;9094:18;;9081:32;9122:30;9081:32;9122:30;:::i;:::-;9179:2;9168:14;;9161:31;9243:2;9228:18;;9215:32;-1:-1:-1;;;;;9259:30:486;;9256:50;;;9302:1;9299;9292:12;9256:50;9338:57;9391:3;9382:6;9371:9;9367:22;9338:57;:::i;:::-;9333:2;9326:5;9322:14;9315:81;;8692:710;;;;:::o;9407:798::-;9522:6;9575:2;9563:9;9554:7;9550:23;9546:32;9543:52;;;9591:1;9588;9581:12;9543:52;9631:9;9618:23;-1:-1:-1;;;;;9701:2:486;9693:6;9690:14;9687:34;;;9717:1;9714;9707:12;9687:34;9740:22;;;;9796:4;9778:16;;;9774:27;9771:47;;;9814:1;9811;9804:12;9771:47;9840:22;;:::i;:::-;9900:2;9887:16;9928:2;9918:8;9915:16;9912:36;;;9944:1;9941;9934:12;9912:36;9971:72;10035:7;10024:8;10020:2;10016:17;9971:72;:::i;:::-;9964:5;9957:87;;10089:2;10085;10081:11;10068:25;10053:40;;10102:33;10127:7;10102:33;:::i;:::-;10162:2;10151:14;;10144:31;;;;-1:-1:-1;10155:5:486;9407:798;-1:-1:-1;;;9407:798:486:o;10210:180::-;10269:6;10322:2;10310:9;10301:7;10297:23;10293:32;10290:52;;;10338:1;10335;10328:12;10290:52;-1:-1:-1;10361:23:486;;10210:180;-1:-1:-1;10210:180:486:o;11016:525::-;11102:6;11110;11118;11126;11179:3;11167:9;11158:7;11154:23;11150:33;11147:53;;;11196:1;11193;11186:12;11147:53;11235:9;11222:23;11254:31;11279:5;11254:31;:::i;:::-;11304:5;-1:-1:-1;11356:2:486;11341:18;;11328:32;;-1:-1:-1;11412:2:486;11397:18;;11384:32;11425:33;11384:32;11425:33;:::i;:::-;11016:525;;;;-1:-1:-1;11477:7:486;;11531:2;11516:18;11503:32;;-1:-1:-1;;11016:525:486:o;12176:408::-;12283:6;12336:2;12324:9;12315:7;12311:23;12307:32;12304:52;;;12352:1;12349;12342:12;12304:52;12392:9;12379:23;-1:-1:-1;;;;;12417:6:486;12414:30;12411:50;;;12457:1;12454;12447:12;12411:50;12480:22;;12536:3;12518:16;;;12514:26;12511:46;;;12553:1;12550;12543:12;12589:315;12657:6;12665;12718:2;12706:9;12697:7;12693:23;12689:32;12686:52;;;12734:1;12731;12724:12;12686:52;12770:9;12757:23;12747:33;;12830:2;12819:9;12815:18;12802:32;12843:31;12868:5;12843:31;:::i;:::-;12893:5;12883:15;;;12589:315;;;;;:::o;13296:558::-;13375:5;13423:6;13411:9;13406:3;13402:19;13398:32;13395:52;;;13443:1;13440;13433:12;13395:52;13465:22;;:::i;:::-;13456:31;;13510:55;13561:3;13550:9;13510:55;:::i;:::-;13503:5;13496:70;13618:3;13607:9;13603:19;13590:33;13632;13657:7;13632:33;:::i;:::-;13692:4;13681:16;;13674:33;13759:3;13744:19;;13731:33;13773;13731;13773;:::i;:::-;13833:4;13822:16;;13815:33;13826:5;13296:558;-1:-1:-1;;13296:558:486:o;13859:280::-;13970:6;14023:3;14011:9;14002:7;13998:23;13994:33;13991:53;;;14040:1;14037;14030:12;13991:53;14063:70;14125:7;14114:9;14063:70;:::i;14144:356::-;14207:5;14255:4;14243:9;14238:3;14234:19;14230:30;14227:50;;;14273:1;14270;14263:12;14227:50;14295:22;;:::i;:::-;14286:31;;14353:9;14340:23;14333:5;14326:38;14424:2;14413:9;14409:18;14396:32;14391:2;14384:5;14380:14;14373:56;14489:2;14478:9;14474:18;14461:32;14456:2;14449:5;14445:14;14438:56;14144:356;;;;:::o;14505:471::-;14610:6;14663:3;14651:9;14642:7;14638:23;14634:33;14631:53;;;14680:1;14677;14670:12;14631:53;14706:22;;:::i;:::-;14751:54;14797:7;14786:9;14751:54;:::i;:::-;14744:5;14737:69;14858:2;14847:9;14843:18;14830:32;14871:33;14896:7;14871:33;:::i;:::-;14931:4;14920:16;;14913:33;14924:5;14505:471;-1:-1:-1;;;14505:471:486:o;14981:898::-;15058:6;15066;15119:2;15107:9;15098:7;15094:23;15090:32;15087:52;;;15135:1;15132;15125:12;15087:52;15174:9;15161:23;15193:31;15218:5;15193:31;:::i;:::-;15243:5;-1:-1:-1;15267:2:486;15305:18;;;15292:32;-1:-1:-1;;;;;15373:14:486;;;15370:34;;;15400:1;15397;15390:12;15370:34;15438:6;15427:9;15423:22;15413:32;;15483:7;15476:4;15472:2;15468:13;15464:27;15454:55;;15505:1;15502;15495:12;15454:55;15541:2;15528:16;15563:2;15559;15556:10;15553:36;;;15569:18;;:::i;:::-;15611:53;15654:2;15635:13;;-1:-1:-1;;15631:27:486;15627:36;;15611:53;:::i;:::-;15598:66;;15687:2;15680:5;15673:17;15727:7;15722:2;15717;15713;15709:11;15705:20;15702:33;15699:53;;;15748:1;15745;15738:12;15699:53;15803:2;15798;15794;15790:11;15785:2;15778:5;15774:14;15761:45;15847:1;15842:2;15837;15830:5;15826:14;15822:23;15815:34;;15868:5;15858:15;;;;;14981:898;;;;;:::o;15884:1616::-;15952:5;16000:4;15988:9;15983:3;15979:19;15975:30;15972:50;;;16018:1;16015;16008:12;15972:50;16040:22;;:::i;:::-;16031:31;;16098:9;16085:23;16078:5;16071:38;16128:2;16181;16170:9;16166:18;16153:32;-1:-1:-1;;;;;16245:2:486;16237:6;16234:14;16231:34;;;16261:1;16258;16251:12;16231:34;16284:22;;;;16336:4;16322:12;;;16318:23;16315:43;;;16354:1;16351;16344:12;16315:43;16382:22;;:::i;:::-;16442:2;16429:16;16470:2;16460:8;16457:16;16454:36;;;16486:1;16483;16476:12;16454:36;16515:52;16563:3;16552:8;16548:2;16544:17;16515:52;:::i;:::-;16506:7;16499:69;;16614:2;16610;16606:11;16593:25;16643:2;16633:8;16630:16;16627:36;;;16659:1;16656;16649:12;16627:36;16682:17;;16730:4;16722:13;;16718:23;-1:-1:-1;16708:51:486;;16755:1;16752;16745:12;16708:51;16791:2;16778:16;16814:60;16830:43;16870:2;16830:43;:::i;16814:60::-;16908:15;;;16990:1;16986:10;;;;16978:19;;16974:28;;;16939:12;;;;17014:15;;;17011:35;;;17042:1;17039;17032:12;17011:35;17066:11;;;;17086:142;17102:6;17097:3;17094:15;17086:142;;;17168:17;;17156:30;;17119:12;;;;17206;;;;17086:142;;;17244:16;;;17237:31;-1:-1:-1;;;17314:4:486;17306:13;;17293:27;17332:16;;;17329:36;;;17361:1;17358;17351:12;17329:36;17401:52;17449:3;17438:8;17434:2;17430:17;17401:52;:::i;:::-;17394:4;17385:7;17381:18;17374:80;;17486:7;17481:2;17474:5;17470:14;17463:31;;;;;15884:1616;;;;:::o;17505:529::-;17583:5;17631:4;17619:9;17614:3;17610:19;17606:30;17603:50;;;17649:1;17646;17639:12;17603:50;17671:22;;:::i;:::-;17662:31;;17729:9;17716:23;-1:-1:-1;;;;;17754:6:486;17751:30;17748:50;;;17794:1;17791;17784:12;17748:50;17821:68;17885:3;17876:6;17865:9;17861:22;17821:68;:::i;:::-;17814:5;17807:83;;17942:2;17931:9;17927:18;17914:32;17955:33;17980:7;17955:33;:::i;:::-;18015:2;18004:14;;17997:31;18008:5;17505:529;-1:-1:-1;;17505:529:486:o;18039:395::-;18149:6;18202:2;18190:9;18181:7;18177:23;18173:32;18170:52;;;18218:1;18215;18208:12;18170:52;18258:9;18245:23;-1:-1:-1;;;;;18283:6:486;18280:30;18277:50;;;18323:1;18320;18313:12;18277:50;18346:82;18420:7;18411:6;18400:9;18396:22;18346:82;:::i;18439:258::-;18534:6;18587:2;18575:9;18566:7;18562:23;18558:32;18555:52;;;18603:1;18600;18593:12;18555:52;18626:65;18683:7;18672:9;18626:65;:::i;18702:418::-;18768:5;18816:4;18804:9;18799:3;18795:19;18791:30;18788:50;;;18834:1;18831;18824:12;18788:50;18867:2;18861:9;18909:4;18901:6;18897:17;18980:6;18968:10;18965:22;-1:-1:-1;;;;;18932:10:486;18929:34;18926:62;18923:88;;;18991:18;;:::i;:::-;19027:2;19020:22;19090:23;;19075:39;;-1:-1:-1;19060:6:486;18702:418;-1:-1:-1;18702:418:486:o;19125:612::-;19233:6;19286:2;19274:9;19265:7;19261:23;19257:32;19254:52;;;19302:1;19299;19292:12;19254:52;19328:22;;:::i;:::-;19373:57;19422:7;19411:9;19373:57;:::i;:::-;19366:5;19359:72;19483:2;19472:9;19468:18;19455:32;19496:33;19521:7;19496:33;:::i;:::-;19556:2;19545:14;;19538:31;19621:2;19606:18;;19593:32;19634:33;19593:32;19634:33;:::i;:::-;19694:2;19683:14;;19676:31;19687:5;19125:612;-1:-1:-1;;;19125:612:486:o;20141:250::-;20226:1;20236:113;20250:6;20247:1;20244:13;20236:113;;;20326:11;;;20320:18;20307:11;;;20300:39;20272:2;20265:10;20236:113;;;-1:-1:-1;;20383:1:486;20365:16;;20358:27;20141:250::o;20396:271::-;20438:3;20476:5;20470:12;20503:6;20498:3;20491:19;20519:76;20588:6;20581:4;20576:3;20572:14;20565:4;20558:5;20554:16;20519:76;:::i;:::-;20649:2;20628:15;-1:-1:-1;;20624:29:486;20615:39;;;;20656:4;20611:50;;20396:271;-1:-1:-1;;20396:271:486:o;20672:220::-;20821:2;20810:9;20803:21;20784:4;20841:45;20882:2;20871:9;20867:18;20859:6;20841:45;:::i;20897:439::-;20950:3;20988:5;20982:12;21015:6;21010:3;21003:19;21041:4;21070;21065:3;21061:14;21054:21;;21109:4;21102:5;21098:16;21132:1;21142:169;21156:6;21153:1;21150:13;21142:169;;;21217:13;;21205:26;;21251:12;;;;21286:15;;;;21178:1;21171:9;21142:169;;;-1:-1:-1;21327:3:486;;20897:439;-1:-1:-1;;;;;20897:439:486:o;21341:1081::-;21430:5;21424:12;21419:3;21412:25;21394:3;21456:4;21506:2;21499:5;21495:14;21489:21;21540:4;21535:2;21530:3;21526:12;21519:26;21582:12;21576:19;21627:4;21620;21615:3;21611:14;21604:28;21653:59;21707:3;21702;21698:13;21682:14;21653:59;:::i;:::-;21749:21;;;21743:28;-1:-1:-1;;21833:14:486;;;21829:23;;21822:4;21813:14;;21806:47;21902:21;;21932:20;;;22006:23;;;;-1:-1:-1;22047:1:486;;21790:7;;21970:13;;;;22057:175;22071:6;22068:1;22065:13;22057:175;;;22134:13;;22120:28;;22207:15;;;;22093:1;22086:9;;;;;22170:14;;;;22057:175;;;22061:3;22287:4;22273:12;22269:23;22263:30;22241:52;;22345:2;22339:3;22332:5;22328:15;22324:24;22318:3;22313;22309:13;22302:47;22365:51;22410:5;22394:14;22365:51;:::i;:::-;22358:58;21341:1081;-1:-1:-1;;;;;;;;;21341:1081:486:o;22427:1148::-;22612:2;22601:9;22594:21;22575:4;22650:6;22644:13;22693:4;22688:2;22677:9;22673:18;22666:32;22735:12;22729:19;22785:4;22779:3;22768:9;22764:19;22757:33;22813:65;22873:3;22862:9;22858:19;22842:14;22813:65;:::i;:::-;22799:79;;22933:2;22919:12;22915:21;22909:28;23006:3;23002:8;22990:9;22982:6;22978:22;22974:37;22968:3;22957:9;22953:19;22946:66;23035:52;23080:6;23064:14;23035:52;:::i;:::-;23021:66;;;23148:4;23134:12;23130:23;23124:30;23118:3;23107:9;23103:19;23096:59;23230:4;23216:12;23212:23;23206:30;23199:38;23192:46;23186:3;23175:9;23171:19;23164:75;23288:2;23280:6;23276:15;23270:22;23248:44;;23301:56;23351:4;23340:9;23336:20;23320:14;-1:-1:-1;;;;;4125:31:486;4113:44;;4059:104;23301:56;23413:4;23405:6;23401:17;23395:24;23388:4;23377:9;23373:20;23366:54;23476:4;23468:6;23464:17;23458:24;23451:4;23440:9;23436:20;23429:54;23539:4;23531:6;23527:17;23521:24;23514:4;23503:9;23499:20;23492:54;23563:6;23555:14;;;;22427:1148;;;;:::o;24400:432::-;24461:5;24509:4;24497:9;24492:3;24488:19;24484:30;24481:50;;;24527:1;24524;24517:12;24481:50;24549:22;;:::i;:::-;24540:31;;24608:9;24595:23;24627:33;24652:7;24627:33;:::i;:::-;24669:22;;24743:2;24728:18;;24715:32;24756:30;24715:32;24756:30;:::i;24837:468::-;24940:6;24993:2;24981:9;24972:7;24968:23;24964:32;24961:52;;;25009:1;25006;24999:12;24961:52;25035:22;;:::i;:::-;25080:52;25124:7;25113:9;25080:52;:::i;:::-;25073:5;25066:67;25185:4;25174:9;25170:20;25157:34;25200:33;25225:7;25200:33;:::i;25310:272::-;25512:3;25497:19;;25525:51;25501:9;25558:6;25525:51;:::i;25587:492::-;25654:5;25702:4;25690:9;25685:3;25681:19;25677:30;25674:50;;;25720:1;25717;25710:12;25674:50;25742:22;;:::i;:::-;25733:31;;25800:9;25787:23;25780:5;25773:38;25871:2;25860:9;25856:18;25843:32;25838:2;25831:5;25827:14;25820:56;25936:2;25925:9;25921:18;25908:32;25903:2;25896:5;25892:14;25885:56;26001:2;25990:9;25986:18;25973:32;25968:2;25961:5;25957:14;25950:56;26067:3;26056:9;26052:19;26039:33;26033:3;26026:5;26022:15;26015:58;25587:492;;;;:::o;26084:372::-;26161:5;26209:6;26197:9;26192:3;26188:19;26184:32;26181:52;;;26229:1;26226;26219:12;26181:52;26251:22;;:::i;:::-;26242:31;;26296:54;26346:3;26335:9;26296:54;:::i;:::-;26289:5;26282:69;26385:64;26445:3;26439;26428:9;26424:19;26385:64;:::i;26461:500::-;26580:6;26633:3;26621:9;26612:7;26608:23;26604:33;26601:53;;;26650:1;26647;26640:12;26601:53;26676:22;;:::i;:::-;26721:68;26781:7;26770:9;26721:68;:::i;:::-;26714:5;26707:83;26842:3;26831:9;26827:19;26814:33;26856;26881:7;26856:33;:::i;28960:616::-;29140:4;29182:3;29171:9;29167:19;29159:27;;29195:58;29243:9;29234:6;29228:13;29195:58;:::i;:::-;29309:4;29301:6;29297:17;29291:24;29284:4;29273:9;29269:20;29262:54;29372:4;29364:6;29360:17;29354:24;29347:4;29336:9;29332:20;29325:54;29435:4;29427:6;29423:17;29417:24;29410:4;29399:9;29395:20;29388:54;29498:4;29490:6;29486:17;29480:24;29473:4;29462:9;29458:20;29451:54;29563:4;29555:6;29551:17;29545:24;29536:6;29525:9;29521:22;29514:56;28960:616;;;;:::o;29581:626::-;29678:6;29686;29739:2;29727:9;29718:7;29714:23;29710:32;29707:52;;;29755:1;29752;29745:12;29707:52;29795:9;29782:23;-1:-1:-1;;;;;29865:2:486;29857:6;29854:14;29851:34;;;29881:1;29878;29871:12;29851:34;29919:6;29908:9;29904:22;29894:32;;29964:7;29957:4;29953:2;29949:13;29945:27;29935:55;;29986:1;29983;29976:12;29935:55;30026:2;30013:16;30052:2;30044:6;30041:14;30038:34;;;30068:1;30065;30058:12;30038:34;30121:7;30116:2;30106:6;30103:1;30099:14;30095:2;30091:23;30087:32;30084:45;30081:65;;;30142:1;30139;30132:12;30081:65;30173:2;30165:11;;;;;30195:6;;-1:-1:-1;29581:626:486;;-1:-1:-1;;;;29581:626:486:o;30212:801::-;30372:4;30401:2;30441;30430:9;30426:18;30471:2;30460:9;30453:21;30494:6;30529;30523:13;30560:6;30552;30545:22;30598:2;30587:9;30583:18;30576:25;;30660:2;30650:6;30647:1;30643:14;30632:9;30628:30;30624:39;30610:53;;30698:2;30690:6;30686:15;30719:1;30729:255;30743:6;30740:1;30737:13;30729:255;;;30836:2;30832:7;30820:9;30812:6;30808:22;30804:36;30799:3;30792:49;30864:40;30897:6;30888;30882:13;30864:40;:::i;:::-;30854:50;-1:-1:-1;30962:12:486;;;;30927:15;;;;30765:1;30758:9;30729:255;;;-1:-1:-1;31001:6:486;;30212:801;-1:-1:-1;;;;;;;30212:801:486:o;31487:219::-;31598:6;31651:3;31639:9;31630:7;31626:23;31622:33;31619:53;;;31668:1;31665;31658:12;32099:219;32210:6;32263:3;32251:9;32242:7;32238:23;32234:33;32231:53;;;32280:1;32277;32270:12;32840:210;32942:6;32995:3;32983:9;32974:7;32970:23;32966:33;32963:53;;;33012:1;33009;33002:12;33055:174;33133:5;33178:3;33169:6;33164:3;33160:16;33156:26;33153:46;;;33195:1;33192;33185:12;33234:907;33510:6;33518;33526;33534;33542;33586:9;33577:7;33573:23;33616:3;33612:2;33608:12;33605:32;;;33633:1;33630;33623:12;33605:32;33672:9;33659:23;33691:31;33716:5;33691:31;:::i;:::-;33741:5;-1:-1:-1;33765:81:486;33838:7;33833:2;33818:18;;33765:81;:::i;:::-;33755:91;-1:-1:-1;33881:3:486;-1:-1:-1;;33862:17:486;;33858:27;33855:47;;;33898:1;33895;33888:12;33855:47;;33936:3;33925:9;33921:19;33911:29;;33959:75;34026:7;34020:3;34009:9;34005:19;33959:75;:::i;:::-;33949:85;;34053:82;34127:7;34121:3;34110:9;34106:19;34053:82;:::i;:::-;34043:92;;33234:907;;;;;;;;:::o;34146:159::-;34210:5;34255:2;34246:6;34241:3;34237:16;34233:25;34230:45;;;34271:1;34268;34261:12;34310:248;34402:6;34455:2;34443:9;34434:7;34430:23;34426:32;34423:52;;;34471:1;34468;34461:12;34423:52;34494:58;34544:7;34533:9;34494:58;:::i;34563:500::-;34624:5;34672:4;34660:9;34655:3;34651:19;34647:30;34644:50;;;34690:1;34687;34680:12;34644:50;34712:22;;:::i;:::-;34703:31;;34771:9;34758:23;34790:33;34815:7;34790:33;:::i;:::-;34832:22;;34914:2;34899:18;;;34886:32;34870:14;;;34863:56;34971:2;34956:18;;34943:32;34984:33;34943:32;34984:33;:::i;35068:399::-;35139:5;35187:4;35175:9;35170:3;35166:19;35162:30;35159:50;;;35205:1;35202;35195:12;35159:50;35227:22;;:::i;:::-;35218:31;;35272:48;35316:3;35305:9;35272:48;:::i;:::-;35265:5;35258:63;35373:2;35362:9;35358:18;35345:32;35386:33;35411:7;35386:33;:::i;35472:264::-;35575:6;35628:3;35616:9;35607:7;35603:23;35599:33;35596:53;;;35645:1;35642;35635:12;35596:53;35668:62;35722:7;35711:9;35668:62;:::i;36270:670::-;36392:1;36388;36383:3;36379:11;36375:19;36367:5;36361:12;36357:38;36352:3;36345:51;36445:4;36438:5;36434:16;36428:23;36421:4;36416:3;36412:14;36405:47;36501:4;36494:5;36490:16;36484:23;36477:4;36472:3;36468:14;36461:47;36557:4;36550:5;36546:16;36540:23;36533:4;36528:3;36524:14;36517:47;36613:4;36606:5;36602:16;36596:23;36589:4;36584:3;36580:14;36573:47;36669:4;36662:5;36658:16;36652:23;36645:4;36640:3;36636:14;36629:47;36739:4;36732:5;36728:16;36722:23;36715:31;36708:39;36701:4;36696:3;36692:14;36685:63;36797:4;36790:5;36786:16;36780:23;36773:4;36768:3;36764:14;36757:47;36823:6;36875:2;36868:5;36864:14;36858:21;36888:46;36930:2;36925:3;36921:12;36907;-1:-1:-1;;;;;4125:31:486;4113:44;;4059:104;36945:394;37232:25;;;37219:3;37204:19;;37266:67;37329:2;37314:18;;37306:6;37266:67;:::i;37344:545::-;37416:5;37464:4;37452:9;37447:3;37443:19;37439:30;37436:50;;;37482:1;37479;37472:12;37436:50;37504:22;;:::i;:::-;37495:31;;37556:9;37550:16;37575:33;37600:7;37575:33;:::i;:::-;37617:22;;37684:2;37669:18;;37663:25;37697:30;37663:25;37697:30;:::i;:::-;37759:7;37754:2;37747:5;37743:14;37736:31;;37820:2;37809:9;37805:18;37799:25;37794:2;37787:5;37783:14;37776:49;37878:2;37867:9;37863:18;37857:25;37852:2;37845:5;37841:14;37834:49;37344:545;;;;:::o;37894:945::-;38007:6;38060:3;38048:9;38039:7;38035:23;38031:33;38028:53;;;38077:1;38074;38067:12;38028:53;38110:2;38104:9;38152:4;38144:6;38140:17;38223:6;38211:10;38208:22;-1:-1:-1;;;;;38175:10:486;38172:34;38169:62;38166:88;;;38234:18;;:::i;:::-;38270:2;38263:22;38309:63;38364:7;38353:9;38309:63;:::i;:::-;38301:6;38294:79;38416:3;38405:9;38401:19;38395:26;38430:31;38455:5;38430:31;:::i;:::-;38496:5;38489:4;38481:6;38477:17;38470:32;;38556:3;38545:9;38541:19;38535:26;38530:2;38522:6;38518:15;38511:51;38618:3;38607:9;38603:19;38597:26;38590:4;38582:6;38578:17;38571:53;38679:4;38668:9;38664:20;38658:27;38652:3;38644:6;38640:16;38633:53;38741:3;38730:9;38726:19;38720:26;38714:3;38706:6;38702:16;38695:52;38802:3;38791:9;38787:19;38781:26;38775:3;38767:6;38763:16;38756:52;38827:6;38817:16;;;37894:945;;;;:::o;38844:600::-;39076:4;39118:3;39107:9;39103:19;39095:27;;39149:6;39138:9;39131:25;39205:6;39192:20;39187:2;39176:9;39172:18;39165:48;39274:2;39266:6;39262:15;39249:29;39244:2;39233:9;39229:18;39222:57;39326:2;39318:6;39314:15;39301:29;39339:31;39364:5;39339:31;:::i;:::-;-1:-1:-1;;;;;39406:31:486;39401:2;39386:18;;;;39379:59;;;;38844:600;;-1:-1:-1;;38844:600:486:o;39728:1073::-;39997:6;39986:9;39979:25;40040:2;40035;40024:9;40020:18;40013:30;39960:4;40091:6;40078:20;40178:2;40174:7;40165:6;40149:14;40145:27;40141:41;40121:18;40117:66;40107:94;;40197:1;40194;40187:12;40107:94;40223:31;;40331:2;40320:14;;;40277:19;-1:-1:-1;;;;;40346:30:486;;40343:50;;;40389:1;40386;40379:12;40343:50;40438:6;40422:14;40418:27;40409:7;40405:41;40402:61;;;40459:1;40456;40449:12;40402:61;40499:2;40494;40483:9;40479:18;40472:30;40539:6;40533:3;40522:9;40518:19;40511:35;40598:6;40589:7;40583:3;40572:9;40568:19;40555:50;40655:1;40649:3;40640:6;40629:9;40625:22;40621:32;40614:43;40718:2;40710:6;40706:15;40693:29;40688:2;40677:9;40673:18;40666:57;40791:3;40784:2;40780:7;40775:2;40767:6;40763:15;40759:29;40748:9;40744:45;40740:55;40732:63;;;;39728:1073;;;;;:::o;40806:242::-;40898:6;40951:2;40939:9;40930:7;40926:23;40922:32;40919:52;;;40967:1;40964;40957:12;40919:52;40990;41034:7;41023:9;40990:52;:::i;41053:951::-;41356:6;41345:9;41338:25;41399:2;41394;41383:9;41379:18;41372:30;41319:4;41437:6;41431:13;41480:2;41475;41464:9;41460:18;41453:30;41526:12;41520:19;41514:3;41503:9;41499:19;41492:48;41615:2;41601:12;41597:21;41591:28;41584:36;41577:44;41571:3;41560:9;41556:19;41549:73;41697:2;41683:12;41679:21;41673:28;41666:36;41659:44;41653:3;41642:9;41638:19;41631:73;41759:4;41745:12;41741:23;41735:30;41713:52;;41802:3;41796;41785:9;41781:19;41774:32;41826:65;41886:3;41875:9;41871:19;41855:14;41826:65;:::i;:::-;41951:2;41939:15;;;;41933:22;-1:-1:-1;;;;;41929:48:486;41922:4;41907:20;;;;41900:78;;;;-1:-1:-1;41815:76:486;;41053:951;-1:-1:-1;;41053:951:486:o;42225:670::-;42340:6;42393:3;42381:9;42372:7;42368:23;42364:33;42361:53;;;42410:1;42407;42400:12;42361:53;42436:22;;:::i;:::-;42487:9;42481:16;42474:5;42467:31;42551:2;42540:9;42536:18;42530:25;42525:2;42518:5;42514:14;42507:49;42609:2;42598:9;42594:18;42588:25;42583:2;42576:5;42572:14;42565:49;42667:2;42656:9;42652:18;42646:25;42641:2;42634:5;42630:14;42623:49;42726:3;42715:9;42711:19;42705:26;42699:3;42692:5;42688:15;42681:51;42777:3;42766:9;42762:19;42756:26;42791:33;42816:7;42791:33;:::i;:::-;42851:3;42840:15;;42833:32;42844:5;42225:670;-1:-1:-1;;;42225:670:486:o;43458:184::-;43528:6;43581:2;43569:9;43560:7;43556:23;43552:32;43549:52;;;43597:1;43594;43587:12;43549:52;-1:-1:-1;43620:16:486;;43458:184;-1:-1:-1;43458:184:486:o;43895:254::-;44039:9;44076:67;44128:14;44121:5;44076:67;:::i;44154:237::-;44286:9;44323:62;44370:14;44363:5;44323:62;:::i;44396:363::-;44482:58;44536:3;44528:5;44522:12;44482:58;:::i;:::-;44586:4;44575:16;;44569:23;-1:-1:-1;;;;;44664:21:486;;;44655:6;44646:16;;44639:47;44741:4;44730:16;;;44724:23;44720:32;44711:6;44702:16;;;44695:58;44396:363::o;44764:431::-;45077:25;;;45064:3;45049:19;;45111:78;45185:2;45170:18;;45162:6;45111:78;:::i;45513:606::-;45814:25;;;45858:13;;45907:9;;45902:2;45887:18;;;45880:37;;;;45959:11;;;45953:18;45948:2;45933:18;;;45926:46;;;;46014:11;;;46008:18;46003:2;45988:18;;45981:46;46074:15;46068:22;-1:-1:-1;;;;;46064:48:486;46058:3;46043:19;;46036:77;45801:3;45786:19;;45513:606::o;46474:882::-;46527:3;46571:5;46565:12;46598:4;46593:3;46586:17;46624:58;46676:4;46671:3;46667:14;46653:12;46624:58;:::i;:::-;46701:4;46742:14;;;46736:21;46787:14;;;46773:12;;;46766:36;46851:21;;46881:20;;;46955:23;;;;-1:-1:-1;46701:4:486;;-1:-1:-1;;46919:13:486;;;;47006:175;47020:6;47017:1;47014:13;47006:175;;;47083:13;;47069:28;;47156:15;;;;47042:1;47035:9;;;;;47119:14;;;;47006:175;;;47010:3;47229:4;47222:5;47218:16;47212:23;47190:45;;47278:3;47271:5;47267:15;47260:4;47255:3;47251:14;47244:39;47299:51;47344:5;47328:14;47299:51;:::i;:::-;47292:58;46474:882;-1:-1:-1;;;;;;;46474:882:486:o;47361:488::-;47435:3;47479:5;47473:12;47506:4;47501:3;47494:17;47549:12;47543:19;47536:4;47531:3;47527:14;47520:43;47618:4;47604:12;47600:23;47594:30;47572:52;;47654:4;47649:2;47644:3;47640:12;47633:26;47681:59;47735:3;47730;47726:13;47710:14;47681:59;:::i;:::-;47793:4;47782:16;;;47776:23;-1:-1:-1;;;;;47772:49:486;47756:14;;;;47749:73;;;;-1:-1:-1;47668:72:486;47361:488;-1:-1:-1;47361:488:486:o;47854:439::-;48147:6;48136:9;48129:25;48190:2;48185;48174:9;48170:18;48163:30;48110:4;48210:77;48283:2;48272:9;48268:18;48260:6;48210:77;:::i;48298:243::-;48391:6;48444:2;48432:9;48423:7;48419:23;48415:32;48412:52;;;48460:1;48457;48450:12;48412:52;48483;48527:7;48516:9;48483:52;:::i;51124:685::-;51398:4;51440:3;51429:9;51425:19;51417:27;;51471:6;51460:9;51453:25;51503:6;51497:13;51519:69;51584:2;51573:9;51569:18;51564:2;51558:9;6530:5;6524:12;6519:3;6512:25;6586:4;6579:5;6575:16;6569:23;6562:4;6557:3;6553:14;6546:47;6642:4;6635:5;6631:16;6625:23;6618:4;6613:3;6609:14;6602:47;6698:4;6691:5;6687:16;6681:23;6674:4;6669:3;6665:14;6658:47;6754:4;6747:5;6743:16;6737:23;6730:4;6725:3;6721:14;6714:47;;;6438:329;51519:69;51631:2;51623:11;;;51617:18;6524:12;;51712:3;51697:19;;6512:25;6575:16;;;6569:23;6553:14;;;6546:47;6642:4;6631:16;;6625:23;6609:14;;;6602:47;6698:4;6687:16;;6681:23;6665:14;;;6658:47;6754:4;6743:16;6737:23;6721:14;;;6714:47;51764:15;;;;51758:22;-1:-1:-1;;;;;51754:48:486;51748:3;51733:19;;;51726:77;51764:15;51124:685;-1:-1:-1;51124:685:486:o;51814:538::-;51930:6;51983:3;51971:9;51962:7;51958:23;51954:33;51951:53;;;52000:1;51997;51990:12;51951:53;52026:22;;:::i;:::-;52077:9;52071:16;52064:5;52057:31;52141:2;52130:9;52126:18;52120:25;52115:2;52108:5;52104:14;52097:49;52199:2;52188:9;52184:18;52178:25;52173:2;52166:5;52162:14;52155:49;52257:2;52246:9;52242:18;52236:25;52231:2;52224:5;52220:14;52213:49;52316:3;52305:9;52301:19;52295:26;52289:3;52282:5;52278:15;52271:51;52341:5;52331:15;;;51814:538;;;;:::o;52357:129::-;-1:-1:-1;;;;;52435:5:486;52431:30;52424:5;52421:41;52411:69;;52476:1;52473;52466:12;52491:502;52603:6;52656:2;52644:9;52635:7;52631:23;52627:32;52624:52;;;52672:1;52669;52662:12;52624:52;52698:22;;:::i;:::-;52750:9;52744:16;52769:33;52794:7;52769:33;:::i;:::-;52811:22;;52878:2;52863:18;;52857:25;52891:32;52857:25;52891:32;:::i;52998:519::-;53216:4;53258:2;53247:9;53243:18;53235:26;;53288:6;53277:9;53270:25;53344:6;53331:20;53326:2;53315:9;53311:18;53304:48;53399:2;53391:6;53387:15;53374:29;53412:31;53437:5;53412:31;:::i;:::-;-1:-1:-1;;;;;53479:31:486;53474:2;53459:18;;;;53452:59;;;;52998:519;;-1:-1:-1;;52998:519:486:o;53956:247::-;54051:6;54104:2;54092:9;54083:7;54079:23;54075:32;54072:52;;;54120:1;54117;54110:12;54072:52;54143:54;54189:7;54178:9;54143:54;:::i;54609:653::-;54723:6;54776:3;54764:9;54755:7;54751:23;54747:33;54744:53;;;54793:1;54790;54783:12;54744:53;54819:22;;:::i;:::-;54864:63;54919:7;54908:9;54864:63;:::i;:::-;54857:5;54850:78;54983:3;54972:9;54968:19;54962:26;54955:4;54948:5;54944:16;54937:52;55044:3;55033:9;55029:19;55023:26;55016:4;55009:5;55005:16;54998:52;55105:4;55094:9;55090:20;55084:27;55077:4;55070:5;55066:16;55059:53;55166:3;55155:9;55151:19;55145:26;55139:3;55132:5;55128:15;55121:51;55226:3;55215:9;55211:19;55205:26;55199:3;55192:5;55188:15;55181:51;55251:5;55241:15;;;54609:653;;;;:::o;55489:276::-;55598:6;55651:3;55639:9;55630:7;55626:23;55622:33;55619:53;;;55668:1;55665;55658:12;55619:53;55691:68;55751:7;55740:9;55691:68;:::i;56014:711::-;56132:5;56119:19;56114:3;56107:32;56187:4;56180:5;56176:16;56163:30;56202:33;56227:7;56202:33;:::i;:::-;-1:-1:-1;;;;;56305:16:486;;;56298:4;56289:14;;56282:40;56378:4;56367:16;;;56354:30;56338:14;;;56331:54;56441:4;56430:16;;;56417:30;56401:14;;;56394:54;56504:4;56493:16;;;56480:30;56464:14;;;56457:54;56262:3;56556:16;;;56543:30;56527:14;;;56520:54;56622:4;56611:16;;56598:30;;56637:33;56598:30;56637:33;:::i;:::-;56715:2;56706:7;56702:16;56695:4;56690:3;56686:14;56679:40;;;56014:711;;:::o;56730:436::-;57041:25;;;57028:3;57013:19;;57075:85;57156:2;57141:18;;57133:6;57075:85;:::i;57171:245::-;57250:6;57258;57311:2;57299:9;57290:7;57286:23;57282:32;57279:52;;;57327:1;57324;57317:12;57279:52;-1:-1:-1;;57350:16:486;;57406:2;57391:18;;;57385:25;57350:16;;57385:25;;-1:-1:-1;57171:245:486:o;57421:508::-;57760:25;;;57747:3;57732:19;;57794:85;57875:2;57860:18;;57852:6;57794:85;:::i;:::-;57916:6;57910:3;57899:9;57895:19;57888:35;57421:508;;;;;;:::o;58181:391::-;58462:25;;;58449:3;58434:19;;58496:70;58562:2;58547:18;;58539:6;58024:19;;58012:32;;58100:4;58089:16;;;58076:30;58060:14;;;58053:54;58163:4;58152:16;;;58139:30;58123:14;;58116:54;57934:242;58577:463;58886:25;;;58873:3;58858:19;;58920:70;58986:2;58971:18;;58963:6;58024:19;;58012:32;;58100:4;58089:16;;;58076:30;58060:14;;;58053:54;58163:4;58152:16;;;58139:30;58123:14;;58116:54;57934:242;58920:70;59027:6;59021:3;59010:9;59006:19;58999:35;58577:463;;;;;;:::o;59045:540::-;59158:5;59145:19;59140:3;59133:32;59221:4;59214:5;59210:16;59197:30;59190:4;59185:3;59181:14;59174:54;59284:4;59277:5;59273:16;59260:30;59253:4;59248:3;59244:14;59237:54;59347:4;59340:5;59336:16;59323:30;59316:4;59311:3;59307:14;59300:54;59410:4;59403:5;59399:16;59386:30;59379:4;59374:3;59370:14;59363:54;59465:4;59458:5;59454:16;59441:30;59480:33;59505:7;59480:33;:::i;:::-;-1:-1:-1;;;;;59545:33:486;59566:3;59529:14;;;;59522:57;;;;-1:-1:-1;59045:540:486:o;59974:382::-;60087:5;60074:19;60102:33;60127:7;60102:33;:::i;:::-;-1:-1:-1;;;;;60156:33:486;60144:46;;60238:4;60227:16;;60214:30;60253:32;60214:30;60253:32;:::i;:::-;-1:-1:-1;;;;;60321:7:486;60317:32;60310:4;60305:3;60301:14;60294:56;;59974:382;;:::o;60361:966::-;60472:5;60459:19;60487:33;60512:7;60487:33;:::i;:::-;-1:-1:-1;;;;;60579:16:486;;;60567:29;;60644:4;60633:16;;60620:30;;60659:33;60620:30;60659:33;:::i;:::-;60724:16;;;60717:4;60708:14;;60701:40;60789:4;60778:16;;60765:30;;60804:33;60765:30;60804:33;:::i;:::-;60869:16;;;60862:4;60853:14;;60846:40;60934:4;60923:16;;60910:30;;60949:33;60910:30;60949:33;:::i;:::-;61014:16;;;61007:4;60998:14;;60991:40;61079:4;61068:16;;61055:30;;61094:33;61055:30;61094:33;:::i;:::-;61159:16;;;61152:4;61143:14;;61136:40;61224:4;61213:16;;61200:30;;61239:33;61200:30;61239:33;:::i;:::-;61317:2;61308:7;61304:16;61297:4;61292:3;61288:14;61281:40;;;60361:966;;:::o;61332:1127::-;62007:25;;;-1:-1:-1;;;;;62068:32:486;;62063:2;62048:18;;62041:60;61994:3;61979:19;;62110:80;62186:2;62171:18;;62163:6;62110:80;:::i;:::-;59691:19;;62276:3;62261:19;;59679:32;59767:4;59756:16;;59743:30;59727:14;;;59720:54;59830:4;59819:16;;59806:30;59790:14;;;59783:54;59893:4;59882:16;;59869:30;59853:14;;;59846:54;59956:4;59945:16;;59932:30;59916:14;;;59909:54;62290:78;62363:3;62352:9;62348:19;62340:6;62290:78;:::i;:::-;62377:76;62448:3;62437:9;62433:19;62425:6;62377:76;:::i;62464:1030::-;63111:25;;;63098:3;63083:19;;63145:80;63221:2;63206:18;;63198:6;63145:80;:::i;:::-;59691:19;;63311:3;63296:19;;59679:32;59767:4;59756:16;;59743:30;59727:14;;;59720:54;59830:4;59819:16;;59806:30;59790:14;;;59783:54;59893:4;59882:16;;59869:30;59853:14;;;59846:54;59956:4;59945:16;;59932:30;59916:14;;;59909:54;63325:78;63398:3;63387:9;63383:19;63375:6;63325:78;:::i;:::-;63412:76;63483:3;63472:9;63468:19;63460:6;63412:76;:::i;64447:407::-;64744:25;;;64731:3;64716:19;;64778:70;64844:2;64829:18;;64821:6;64166:12;;64241:9;;-1:-1:-1;;;;;64237:18:486;;;64225:31;;64302:4;64294:13;;;64288:20;64272:14;;;64265:44;64359:4;64351:13;;;64345:20;64341:29;;64325:14;;;64318:53;;;;64413:16;;64407:23;64403:32;64396:4;64387:14;;;64380:56;64078:364;65269:253;65367:6;65420:2;65408:9;65399:7;65395:23;65391:32;65388:52;;;65436:1;65433;65426:12;65388:52;65459:57;65508:7;65497:9;65459:57;:::i;65806:245::-;65873:6;65926:2;65914:9;65905:7;65901:23;65897:32;65894:52;;;65942:1;65939;65932:12;65894:52;65974:9;65968:16;65993:28;66015:5;65993:28;:::i;66056:127::-;66117:10;66112:3;66108:20;66105:1;66098:31;66148:4;66145:1;66138:15;66172:4;66169:1;66162:15;66188:416;66277:1;66314:5;66277:1;66328:270;66349:7;66339:8;66336:21;66328:270;;;66408:4;66404:1;66400:6;66396:17;66390:4;66387:27;66384:53;;;66417:18;;:::i;:::-;66467:7;66457:8;66453:22;66450:55;;;66487:16;;;;66450:55;66566:22;;;;66526:15;;;;66328:270;;;66332:3;66188:416;;;;;:::o;66609:806::-;66658:5;66688:8;66678:80;;-1:-1:-1;66729:1:486;66743:5;;66678:80;66777:4;66767:76;;-1:-1:-1;66814:1:486;66828:5;;66767:76;66859:4;66877:1;66872:59;;;;66945:1;66940:130;;;;66852:218;;66872:59;66902:1;66893:10;;66916:5;;;66940:130;66977:3;66967:8;66964:17;66961:43;;;66984:18;;:::i;:::-;-1:-1:-1;;67040:1:486;67026:16;;67055:5;;66852:218;;67154:2;67144:8;67141:16;67135:3;67129:4;67126:13;67122:36;67116:2;67106:8;67103:16;67098:2;67092:4;67089:12;67085:35;67082:77;67079:159;;;-1:-1:-1;67191:19:486;;;67223:5;;67079:159;67270:34;67295:8;67289:4;67270:34;:::i;:::-;67340:6;67336:1;67332:6;67328:19;67319:7;67316:32;67313:58;;;67351:18;;:::i;:::-;67389:20;;66609:806;-1:-1:-1;;;66609:806:486:o;67420:131::-;67480:5;67509:36;67536:8;67530:4;67509:36;:::i;67556:168::-;67629:9;;;67660;;67677:15;;;67671:22;;67657:37;67647:71;;67698:18;;:::i;67729:273::-;67797:6;67850:2;67838:9;67829:7;67825:23;67821:32;67818:52;;;67866:1;67863;67856:12;67818:52;67898:9;67892:16;67948:4;67941:5;67937:16;67930:5;67927:27;67917:55;;67968:1;67965;67958:12;68007:140;68065:5;68094:47;68135:4;68125:8;68121:19;68115:4;68094:47;:::i;68341:127::-;68402:10;68397:3;68393:20;68390:1;68383:31;68433:4;68430:1;68423:15;68457:4;68454:1;68447:15;68473:521;68550:4;68556:6;68616:11;68603:25;68710:2;68706:7;68695:8;68679:14;68675:29;68671:43;68651:18;68647:68;68637:96;;68729:1;68726;68719:12;68637:96;68756:33;;68808:20;;;-1:-1:-1;;;;;;68840:30:486;;68837:50;;;68883:1;68880;68873:12;68837:50;68916:4;68904:17;;-1:-1:-1;68947:14:486;68943:27;;;68933:38;;68930:58;;;68984:1;68981;68974:12;68930:58;68473:521;;;;;:::o;68999:125::-;69064:9;;;69085:10;;;69082:36;;;69098:18;;:::i;69129:782::-;69478:3;69467:9;69460:22;69441:4;69499:57;69551:3;69540:9;69536:19;69528:6;69499:57;:::i;:::-;69491:65;;-1:-1:-1;;;;;69602:6:486;69596:13;69592:54;69587:2;69576:9;69572:18;69565:82;69694:2;69686:6;69682:15;69676:22;-1:-1:-1;;;;;69789:2:486;69775:12;69771:21;69766:2;69755:9;69751:18;69744:49;69857:2;69851;69843:6;69839:15;69833:22;69829:31;69824:2;69813:9;69809:18;69802:59;;;69898:6;69892:3;69881:9;69877:19;69870:35;69129:782;;;;;;:::o;69916:287::-;70045:3;70083:6;70077:13;70099:66;70158:6;70153:3;70146:4;70138:6;70134:17;70099:66;:::i;:::-;70181:16;;;;;69916:287;-1:-1:-1;;69916:287:486:o", "linkReferences": { "src/market/libraries/LoanLibrary.sol": { "LoanLibrary": [ - { "start": 8532, "length": 20 }, - { "start": 10103, "length": 20 } + { "start": 8855, "length": 20 }, + { "start": 10426, "length": 20 } ] }, "src/market/libraries/OfferLibrary.sol": { "OfferLibrary": [ - { "start": 4579, "length": 20 }, - { "start": 8213, "length": 20 } + { "start": 4820, "length": 20 }, + { "start": 8536, "length": 20 } ] }, "src/market/libraries/RiskLibrary.sol": { "RiskLibrary": [ - { "start": 5211, "length": 20 }, - { "start": 5327, "length": 20 }, - { "start": 5662, "length": 20 }, - { "start": 9602, "length": 20 }, - { "start": 10431, "length": 20 }, - { "start": 10960, "length": 20 }, - { "start": 11670, "length": 20 } + { "start": 5452, "length": 20 }, + { "start": 5568, "length": 20 }, + { "start": 5903, "length": 20 }, + { "start": 9925, "length": 20 }, + { "start": 10754, "length": 20 }, + { "start": 11283, "length": 20 } ] }, "src/market/libraries/YieldCurveLibrary.sol": { - "YieldCurveLibrary": [{ "start": 15896, "length": 20 }] + "YieldCurveLibrary": [{ "start": 16159, "length": 20 }] }, "src/market/libraries/actions/BuyCreditLimit.sol": { "BuyCreditLimit": [ - { "start": 6710, "length": 20 }, - { "start": 6809, "length": 20 } + { "start": 7033, "length": 20 }, + { "start": 7132, "length": 20 } ] }, "src/market/libraries/actions/BuyCreditMarket.sol": { "BuyCreditMarket": [ - { "start": 3296, "length": 20 }, - { "start": 9360, "length": 20 }, - { "start": 9459, "length": 20 } + { "start": 3267, "length": 20 }, + { "start": 9683, "length": 20 }, + { "start": 9782, "length": 20 } ] }, "src/market/libraries/actions/Claim.sol": { "Claim": [ - { "start": 12438, "length": 20 }, - { "start": 12537, "length": 20 } + { "start": 12638, "length": 20 }, + { "start": 12737, "length": 20 } ] }, "src/market/libraries/actions/Compensate.sol": { "Compensate": [ - { "start": 5437, "length": 20 }, - { "start": 5536, "length": 20 } + { "start": 5678, "length": 20 }, + { "start": 5777, "length": 20 } ] }, "src/market/libraries/actions/Deposit.sol": { "Deposit": [ - { "start": 12778, "length": 20 }, - { "start": 12877, "length": 20 } + { "start": 12978, "length": 20 }, + { "start": 13077, "length": 20 } ] }, "src/market/libraries/actions/Initialize.sol": { "Initialize": [ - { "start": 11937, "length": 20 }, - { "start": 12078, "length": 20 } + { "start": 12137, "length": 20 }, + { "start": 12278, "length": 20 } ] }, "src/market/libraries/actions/Liquidate.sol": { "Liquidate": [ - { "start": 11253, "length": 20 }, - { "start": 11352, "length": 20 }, - { "start": 11477, "length": 20 } + { "start": 11576, "length": 20 }, + { "start": 11675, "length": 20 }, + { "start": 11800, "length": 20 } ] }, "src/market/libraries/actions/LiquidateWithReplacement.sol": { "LiquidateWithReplacement": [ - { "start": 10748, "length": 20 }, - { "start": 10847, "length": 20 }, - { "start": 11103, "length": 20 } + { "start": 11071, "length": 20 }, + { "start": 11170, "length": 20 }, + { "start": 11426, "length": 20 } ] }, "src/market/libraries/actions/PartialRepay.sol": { "PartialRepay": [ - { "start": 3433, "length": 20 }, - { "start": 3532, "length": 20 } + { "start": 3404, "length": 20 }, + { "start": 3503, "length": 20 } ] }, "src/market/libraries/actions/Repay.sol": { "Repay": [ - { "start": 9187, "length": 20 }, - { "start": 9285, "length": 20 } + { "start": 9510, "length": 20 }, + { "start": 9608, "length": 20 } ] }, "src/market/libraries/actions/SelfLiquidate.sol": { "SelfLiquidate": [ - { "start": 6509, "length": 20 }, - { "start": 6643, "length": 20 } + { "start": 6832, "length": 20 }, + { "start": 6966, "length": 20 } ] }, "src/market/libraries/actions/SellCreditLimit.sol": { "SellCreditLimit": [ - { "start": 6215, "length": 20 }, - { "start": 6314, "length": 20 } + { "start": 6538, "length": 20 }, + { "start": 6637, "length": 20 } ] }, "src/market/libraries/actions/SellCreditMarket.sol": { "SellCreditMarket": [ - { "start": 4967, "length": 20 }, - { "start": 5066, "length": 20 }, - { "start": 9900, "length": 20 } + { "start": 5208, "length": 20 }, + { "start": 5307, "length": 20 }, + { "start": 10223, "length": 20 } ] }, "src/market/libraries/actions/SetCopyLimitOrderConfigs.sol": { "SetCopyLimitOrderConfigs": [ - { "start": 8725, "length": 20 }, - { "start": 8824, "length": 20 } + { "start": 9048, "length": 20 }, + { "start": 9147, "length": 20 } ] }, "src/market/libraries/actions/SetUserConfiguration.sol": { "SetUserConfiguration": [ - { "start": 4135, "length": 20 }, - { "start": 4234, "length": 20 } + { "start": 4427, "length": 20 }, + { "start": 4526, "length": 20 } ] }, "src/market/libraries/actions/SetVault.sol": { "SetVault": [ - { "start": 8326, "length": 20 }, - { "start": 8460, "length": 20 } + { "start": 8649, "length": 20 }, + { "start": 8783, "length": 20 } ] }, "src/market/libraries/actions/UpdateConfig.sol": { "UpdateConfig": [ - { "start": 3714, "length": 20 }, - { "start": 3813, "length": 20 }, - { "start": 4421, "length": 20 }, - { "start": 8934, "length": 20 }, - { "start": 9066, "length": 20 } + { "start": 3685, "length": 20 }, + { "start": 3784, "length": 20 }, + { "start": 4662, "length": 20 }, + { "start": 9257, "length": 20 }, + { "start": 9389, "length": 20 } ] }, "src/market/libraries/actions/Withdraw.sol": { "Withdraw": [ - { "start": 12604, "length": 20 }, - { "start": 12703, "length": 20 } + { "start": 12804, "length": 20 }, + { "start": 12903, "length": 20 } ] } }, "immutableReferences": { - "52969": [ - { "start": 14834, "length": 32 }, - { "start": 14875, "length": 32 }, - { "start": 15235, "length": 32 } + "53685": [ + { "start": 15059, "length": 32 }, + { "start": 15100, "length": 32 }, + { "start": 15460, "length": 32 } ] } }, @@ -2656,7 +2615,6 @@ "getCreditPosition(uint256)": "76c1b82f", "getDebtPosition(uint256)": "b5ec7487", "getLoanOfferAPR(address,uint256,address,uint256)": "73b683be", - "getPositionsCount()": "1ca3b0cb", "getRoleAdmin(bytes32)": "248a9ca3", "getSellCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))": "9ab80115", "getUserDefinedBorrowOfferAPR(address,uint256)": "2b59bd99", @@ -2667,7 +2625,8 @@ "grantRole(bytes32,address)": "2f2ff15d", "hasRole(bytes32,address)": "91d14854", "initialize(address,(uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256),(address,uint64),(address,address,address,address,address,address))": "f1bf35c3", - "isDebtPositionLiquidatable(uint256)": "e5af06ce", + "isUserDefinedBorrowOfferNull(address)": "0cfa9a49", + "isUserDefinedLoanOfferNull(address)": "44ce7c30", "liquidate((uint256,uint256,uint256))": "e05001f5", "liquidateWithReplacement((uint256,address,uint256,uint256,uint256,uint256,address))": "d927acef", "multicall(bytes[])": "ac9650d8", @@ -2691,7 +2650,6 @@ "setCopyLimitOrderConfigsOnBehalfOf((((uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256)),address))": "7a32376a", "setUserConfiguration((uint256,bool,bool,uint256[]))": "2e106f21", "setUserConfigurationOnBehalfOf(((uint256,bool,bool,uint256[]),address))": "134f3f96", - "setVariablePoolBorrowRate(uint128)": "4cbd882c", "setVault((address,bool))": "510aeb39", "setVaultOnBehalfOf(((address,bool),address))": "75829a36", "supportsInterface(bytes4)": "01ffc9a7", @@ -2702,7 +2660,7 @@ "withdraw((address,uint256,address))": "2b4c9a20", "withdrawOnBehalfOf(((address,uint256,address),address))": "f54ae18b" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dueDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"}],\"name\":\"DUE_DATE_GREATER_THAN_MAX_DUE_DATE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_OFFER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"crBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crAfter\",\"type\":\"uint256\"}],\"name\":\"MUST_IMPROVE_COLLATERAL_RATIO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_TENOR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"oldBorrowRate\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"newBorrowRate\",\"type\":\"uint128\"}],\"name\":\"VariablePoolBorrowRateUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct BuyCreditLimitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"buyCreditLimit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct BuyCreditLimitParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditLimitOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"buyCreditLimitOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"buyCreditMarket\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditMarketOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"buyCreditMarketOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"collateralRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionWithDebtToRepayId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionToCompensateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct CompensateParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"compensate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionWithDebtToRepayId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionToCompensateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct CompensateParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct CompensateOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"compensateOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"data\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nextDebtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextCreditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"underlyingCollateralToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"underlyingBorrowToken\",\"type\":\"address\"},{\"internalType\":\"contract NonTransferrableToken\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"contract NonTransferrableRebasingTokenVault\",\"name\":\"borrowTokenVault\",\"type\":\"address\"},{\"internalType\":\"contract NonTransferrableToken\",\"name\":\"debtToken\",\"type\":\"address\"},{\"internalType\":\"contract IPool\",\"name\":\"variablePool\",\"type\":\"address\"}],\"internalType\":\"struct DataView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"debtTokenAmountToCollateralTokenAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"struct DepositParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"struct DepositParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct DepositOnBehalfOfParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"depositOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"swapFeeAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationRewardPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"overdueCollateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"internalType\":\"struct InitializeFeeConfigParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getBorrowOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getBuyCreditMarketSwapData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forSale\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct CreditPosition\",\"name\":\"creditPosition\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cashAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"internalType\":\"struct BuyCreditMarket.SwapDataBuyCreditMarket\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"name\":\"getCreditPosition\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forSale\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct CreditPosition\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"name\":\"getDebtPosition\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"futureValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dueDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidityIndexAtRepayment\",\"type\":\"uint256\"}],\"internalType\":\"struct DebtPosition\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getLoanOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPositionsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getSellCreditMarketSwapData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forSale\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct CreditPosition\",\"name\":\"creditPosition\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"creditAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cashAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"internalType\":\"struct SellCreditMarket.SwapDataSellCreditMarket\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getUserDefinedBorrowOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserDefinedCopyBorrowOfferConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserDefinedCopyLoanOfferConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getUserDefinedLoanOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserView\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct LimitOrder\",\"name\":\"loanOffer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct LimitOrder\",\"name\":\"borrowOffer\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"openingLimitBorrowCR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allCreditPositionsForSaleDisabled\",\"type\":\"bool\"}],\"internalType\":\"struct User\",\"name\":\"user\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralTokenBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowTokenBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct UserView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"swapFeeAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationRewardPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"overdueCollateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"internalType\":\"struct InitializeFeeConfigParams\",\"name\":\"f\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"crOpening\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crLiquidation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"internalType\":\"struct InitializeRiskConfigParams\",\"name\":\"r\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"variablePoolBorrowRateStaleRateInterval\",\"type\":\"uint64\"}],\"internalType\":\"struct InitializeOracleParams\",\"name\":\"o\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingCollateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingBorrowToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variablePool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrowTokenVault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sizeFactory\",\"type\":\"address\"}],\"internalType\":\"struct InitializeDataParams\",\"name\":\"d\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"name\":\"isDebtPositionLiquidatable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCollateralProfit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct LiquidateParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"liquidate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidatorProfitCollateralToken\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minimumCollateralProfit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct LiquidateWithReplacementParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"liquidateWithReplacement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidatorProfitCollateralToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidatorProfitBorrowToken\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"variablePoolBorrowRateStaleRateInterval\",\"type\":\"uint64\"}],\"internalType\":\"struct InitializeOracleParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionWithDebtToRepayId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"internalType\":\"struct PartialRepayParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"partialRepay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"internalType\":\"struct RepayParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"repay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"crOpening\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crLiquidation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"internalType\":\"struct InitializeRiskConfigParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct SelfLiquidateParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"selfLiquidate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct SelfLiquidateParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct SelfLiquidateOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"selfLiquidateOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct SellCreditLimitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"sellCreditLimit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct SellCreditLimitParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditLimitOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"sellCreditLimitOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"sellCreditMarket\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditMarketOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"sellCreditMarketOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct SetCopyLimitOrderConfigsParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"setCopyLimitOrderConfigs\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct SetCopyLimitOrderConfigsParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct SetCopyLimitOrderConfigsOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"setCopyLimitOrderConfigsOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"openingLimitBorrowCR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allCreditPositionsForSaleDisabled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"creditPositionIdsForSale\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"creditPositionIds\",\"type\":\"uint256[]\"}],\"internalType\":\"struct SetUserConfigurationParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"setUserConfiguration\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"openingLimitBorrowCR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allCreditPositionsForSaleDisabled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"creditPositionIdsForSale\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"creditPositionIds\",\"type\":\"uint256[]\"}],\"internalType\":\"struct SetUserConfigurationParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct SetUserConfigurationOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"setUserConfigurationOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"borrowRate\",\"type\":\"uint128\"}],\"name\":\"setVariablePoolBorrowRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forfeitOldShares\",\"type\":\"bool\"}],\"internalType\":\"struct SetVaultParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"setVault\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forfeitOldShares\",\"type\":\"bool\"}],\"internalType\":\"struct SetVaultParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct SetVaultOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"setVaultOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct UpdateConfigParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"struct WithdrawParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"struct WithdrawParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct WithdrawOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"withdrawOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Size (https://size.credit/)\",\"custom:security-contact\":\"security@size.credit\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"buyCreditLimit((uint256,(uint256[],int256[],uint256[])))\":{\"params\":{\"params\":\"BuyCreditLimitParams struct containing the following fields: - uint256 maxDueDate: The maximum due date of the loan (e.g., 1712188800 for April 4th, 2024) - YieldCurve curveRelativeTime: The yield curve for the loan offer, a struct containing the following fields: - uint256[] tenors: The relative timestamps of the yield curve (for example, [30 days, 60 days, 90 days]) - int256[] aprs: The aprs of the yield curve (for example, [0.05e18, 0.07e18, 0.08e18] to represent 5% APR, 7% APR, and 8% APR, linear interest, respectively) - uint256[] marketRateMultipliers: The market rate multipliers of the yield curve (for example, [1e18, 1.2e18, 1.3e18] to represent 100%, 120%, and 130% of the market borrow rate, respectively)\"}},\"buyCreditMarket((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"params\":{\"params\":\"BuyCreditMarketParams struct containing the following fields: - address borrower: The address of the borrower (optional, for lending) - uint256 creditPositionId: The id of the credit position to buy (optional, for buying credit) - uint256 tenor: The tenor of the loan - uint256 amount: The amount of tokens to lend or credit to buy - bool exactAmountIn: Indicates if the amount is the value to be transferred or used to calculate the transfer amount - uint256 deadline: The maximum timestamp for the transaction to be executed - uint256 minAPR: The minimum APR the caller is willing to accept\"}},\"buyCreditMarketOnBehalfOf(((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address),address,address))\":{\"details\":\"When emitting the `SwapData` event, the recipient is set as the `lender` param, which is inconsistent with the `BuyCreditMarket` event emitted just before, where `lender` is passed as `onBehalfOf`. The reason is that `SwapData` emits only debt/credit recipients, while `BuyCreditMarket` emits both and also `onBehalfOf`.\"},\"claim((uint256))\":{\"details\":\"Both ACTIVE and OVERDUE loans can't be claimed because the money is not in the protocol yet. CLAIMED loans can't be claimed either because its credit has already been consumed entirely either by a previous claim or by exiting before\",\"params\":{\"params\":\"ClaimParams struct containing the following fields: - uint256 creditPositionId: The id of the credit position to claim\"}},\"collateralRatio(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The collateral ratio of the user\"}},\"compensate((uint256,uint256,uint256))\":{\"params\":{\"params\":\"CompensateParams struct containing the following fields: - uint256 creditPositionWithDebtToRepayId: The id of the credit position ID with debt to repay - uint256 creditPositionToCompensateId: The id of the credit position to compensate - uint256 amount: The amount of tokens to compensate (in decimals, e.g. 1_000e6 for 1000 aUSDC)\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"data()\":{\"returns\":{\"_0\":\"The data view\"}},\"debtTokenAmountToCollateralTokenAmount(uint256)\":{\"params\":{\"amount\":\"The amount of debt tokens\"},\"returns\":{\"_0\":\"The equivalent amount of collateral tokens\"}},\"deposit((address,uint256,address))\":{\"details\":\"The caller must approve the transfer of the token to the protocol. This function mints 1:1 Deposit Tokens (e.g. szaUSDC, szETH) in exchange of the deposited tokens\",\"params\":{\"params\":\"DepositParams struct containing the following fields: - address token: The address of the token to deposit - uint256 amount: The amount of tokens to deposit - uint256 to: The recipient of the deposit\"}},\"feeConfig()\":{\"returns\":{\"_0\":\"The fee configuration parameters\"}},\"getBorrowOfferAPR(address,uint256,address,uint256)\":{\"params\":{\"collectionId\":\"The ID of the collection\",\"rateProvider\":\"The address of the rate provider\",\"tenor\":\"The tenor of the loan\",\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getBuyCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"params\":{\"params\":\"The input parameters for buying credit as a market order\"},\"returns\":{\"_0\":\"swapData The swap data for buying credit as a market order\"}},\"getCreditPosition(uint256)\":{\"params\":{\"creditPositionId\":\"The ID of the credit position\"},\"returns\":{\"_0\":\"The CreditPosition struct containing the details of the credit position\"}},\"getDebtPosition(uint256)\":{\"params\":{\"debtPositionId\":\"The ID of the debt position\"},\"returns\":{\"_0\":\"The DebtPosition struct containing the details of the debt position\"}},\"getLoanOfferAPR(address,uint256,address,uint256)\":{\"params\":{\"collectionId\":\"The ID of the collection\",\"rateProvider\":\"The address of the rate provider\",\"tenor\":\"The tenor of the loan\",\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getPositionsCount()\":{\"returns\":{\"_0\":\"The count of debt positions and credit positions\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getSellCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"params\":{\"params\":\"The input parameters for selling credit as a market order\"},\"returns\":{\"_0\":\"swapData The swap data for selling credit as a market order\"}},\"getUserDefinedBorrowOfferAPR(address,uint256)\":{\"params\":{\"borrower\":\"The address of the borrower\",\"tenor\":\"The tenor of the loan\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getUserDefinedCopyBorrowOfferConfig(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The user copy borrow offer\"}},\"getUserDefinedCopyLoanOfferConfig(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The user copy loan offer\"}},\"getUserDefinedLoanOfferAPR(address,uint256)\":{\"params\":{\"lender\":\"The address of the lender\",\"tenor\":\"The tenor of the loan\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getUserView(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The user view\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isDebtPositionLiquidatable(uint256)\":{\"params\":{\"debtPositionId\":\"The ID of the debt position\"},\"returns\":{\"_0\":\"True if the debt position is liquidatable, false otherwise\"}},\"liquidate((uint256,uint256,uint256))\":{\"params\":{\"params\":\"LiquidateParams struct containing the following fields: - uint256 debtPositionId: The id of the debt position to liquidate - uint256 minimumCollateralProfit: The minimum collateral profit that the liquidator is willing to accept from the borrower (keepers might choose to pass a value below 100% of the cash they bring and take the risk of liquidating unprofitably)\"},\"returns\":{\"liquidatorProfitCollateralToken\":\"The amount of collateral tokens the the fee recipient received from the liquidation\"}},\"liquidateWithReplacement((uint256,address,uint256,uint256,uint256,uint256,address))\":{\"details\":\"This function works exactly like `liquidate`, with an added logic of replacing the borrower on the storage When liquidating with replacement, nothing changes from the lenders' perspective, but a spread is created between the previous borrower rate and the new borrower rate. As a result of the spread of these borrow aprs, the protocol is able to profit from the liquidation. Since the choice of the borrower impacts on the protocol's profit, this method is permissioned\",\"params\":{\"params\":\"LiquidateWithReplacementParams struct containing the following fields: - uint256 debtPositionId: The id of the debt position to liquidate - uint256 minimumCollateralProfit: The minimum collateral profit that the liquidator is willing to accept from the borrower (keepers might choose to pass a value below 100% of the cash they bring and take the risk of liquidating unprofitably) - address borrower: The address of the replacement borrower - uint256 deadline: The maximum timestamp for the transaction to be executed - uint256 minAPR: The minimum APR the caller is willing to accept\"},\"returns\":{\"liquidatorProfitBorrowToken\":\"The amount of borrow tokens liquidator received from the liquidation\",\"liquidatorProfitCollateralToken\":\"The amount of collateral tokens liquidator received from the liquidation\"}},\"multicall(bytes[])\":{\"details\":\"This function allows for batch processing of multiple interactions with the protocol in a single transaction. This allows users to take actions that would otherwise be denied due to deposit limits.\",\"params\":{\"data\":\"An array of bytes encoded function calls to be executed in sequence.\"},\"returns\":{\"results\":\"An array of bytes representing the return data from each function call executed.\"}},\"oracle()\":{\"returns\":{\"_0\":\"The oracle parameters\"}},\"partialRepay((uint256,uint256,address))\":{\"details\":\"The partial repay amount should be less than the debt position future value\",\"params\":{\"params\":\"PartialRepayParams struct containing the following fields: - uint256 creditPositionWithDebtToRepayId: The id of the credit position with debt to repay - uint256 amount: The amount of tokens to repay (in decimals, e.g. 1_000e6 for 1000 aUSDC) - address borrower: The address of the borrower\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"details\":\"Initializes the reentrancy guard\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"repay((uint256,address))\":{\"details\":\"The Variable Pool liquidity index is snapshotted at the time of the repayment in order to calculate the accrued interest for lenders to claim\",\"params\":{\"params\":\"RepayParams struct containing the following fields: - uint256 debtPositionId: The id of the debt position to repay\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"riskConfig()\":{\"returns\":{\"_0\":\"The risk configuration parameters\"}},\"selfLiquidate((uint256))\":{\"details\":\"The user is prevented to self liquidate if a regular liquidation would be profitable\",\"params\":{\"params\":\"SelfLiquidateParams struct containing the following fields: - uint256 creditPositionId: The id of the credit position to self-liquidate\"}},\"sellCreditLimit((uint256,(uint256[],int256[],uint256[])))\":{\"params\":{\"params\":\"SellCreditLimitParams struct containing the following fields: - YieldCurve curveRelativeTime: The yield curve for the borrow offer, a struct containing the following fields: - uint256[] tenors: The relative timestamps of the yield curve (for example, [30 days, 60 days, 90 days]) - int256[] aprs: The aprs of the yield curve (for example, [0.05e18, 0.07e18, 0.08e18] to represent 5% APR, 7% APR, and 8% APR, linear interest, respectively) - uint256[] marketRateMultipliers: The market rate multipliers of the yield curve (for example, [0.99e18, 1e18, 1.1e18] to represent 99%, 100%, and 110% of the market borrow rate, respectively)\"}},\"sellCreditMarket((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"params\":{\"params\":\"SellCreditMarketParams struct containing the following fields: - address lender: The address of the lender - uint256 creditPositionId: The id of a credit position to be sold - uint256 amount: The amount of tokens to borrow (in decimals, e.g. 1_000e6 for 1000 aUSDC) - uint256 tenor: The tenor of the loan - uint256 deadline: The maximum timestamp for the transaction to be executed - uint256 maxAPR: The maximum APR the caller is willing to accept - bool exactAmountIn: this flag indicates if the amount argument represents either credit (true) or cash (false) - uint256 collectionId: The collection id. If collectionId is RESERVED_ID, selects the user-defined yield curve - address rateProvider: The rate provider. If collectionId is RESERVED_ID, selects the user-defined yield curve\"}},\"sellCreditMarketOnBehalfOf(((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address),address,address))\":{\"details\":\"When emitting the `SwapData` event, the `recipient` parameter is left out. The reason is that `SwapData` emits only debt/credit recipients, while `SellCreditMarket` emits both and also the cash recipient.\"},\"setCopyLimitOrderConfigs(((uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256)))\":{\"details\":\"Does not erase the user's loan offer and borrow offer To specify \\\"no copy\\\", pass a null CopyLimitOrderConfig except for offsetAPR, since a completely null CopyLimitOrderConfig will default to the curator-defined CopyLimitOrderConfig for that market.\",\"params\":{\"params\":\"SetCopyLimitOrderConfigsParams struct containing the following fields: - CopyLimitOrderConfig copyLoanOfferConfig: The loan offer copy parameters - uint256 minTenor: The minimum tenor of the loan offer to copy (0 means use copy yield curve tenor lower bound) - uint256 maxTenor: The maximum tenor of the loan offer to copy (type(uint256).max means use copy yield curve tenor upper bound) - uint256 minAPR: The minimum APR of the loan offer to copy (0 means use copy yield curve APR lower bound) - uint256 maxAPR: The maximum APR of the loan offer to copy (type(uint256).max means use copy yield curve APR upper bound) - int256 offsetAPR: The offset APR relative to the copied loan offer - CopyLimitOrderConfig copyBorrowOfferConfig: The borrow offer copy parameters - uint256 minTenor: The minimum tenor of the borrow offer to copy (0 means use copy yield curve tenor lower bound) - uint256 maxTenor: The maximum tenor of the borrow offer to copy (type(uint256).max means use copy yield curve tenor upper bound) - uint256 minAPR: The minimum APR of the borrow offer to copy (0 means use copy yield curve APR lower bound) - uint256 maxAPR: The maximum APR of the borrow offer to copy (type(uint256).max means use copy yield curve APR upper bound) - int256 offsetAPR: The offset APR relative to the copied borrow offer\"}},\"setUserConfiguration((uint256,bool,bool,uint256[]))\":{\"details\":\"By default, all created creadit positions are for sale. Users who want to disable the sale of all or specific credit positions can do so by calling this function. By default, all users CR to open a position is crOpening. Users who want to increase their CR opening limit can do so by calling this function. Note: this function was updated in v1.8 to accept a `vault` parameter. Although this function is market-specific, it will change a NonTransferrableRebasingTokenVault state that will be reflected on all markets.\",\"params\":{\"params\":\"SetUserConfigurationParams struct containing the following fields: - address vault: The address of the user vault - uint256 openingLimitBorrowCR: The opening limit borrow collateral ratio, which indicates the maximum CR the borrower is willing to accept after their offer is picked by a lender - bool allCreditPositionsForSaleDisabled: This global flag indicates if all credit positions should be set for sale or not - bool creditPositionIdsForSale: This flag indicates if the creditPositionIds array should be set for sale or not - uint256[] creditPositionIds: The id of the credit positions\"}},\"setVariablePoolBorrowRate(uint128)\":{\"details\":\"The variable pool borrow rate cannot be used if the variablePoolBorrowRateStaleRateInterval is set to zero\",\"params\":{\"borrowRate\":\"The new borrow rate\"}},\"setVault((address,bool))\":{\"params\":{\"params\":\"SetVaultParams struct containing the following fields: - address vault: The address of the vault to set - bool forfeitOldShares: Whether to forfeit old shares. WARNING: This will reset the user's balance to 0.\"}},\"setVaultOnBehalfOf(((address,bool),address))\":{\"params\":{\"params\":\"SetVaultOnBehalfOfParams struct containing the following fields: - address onBehalfOf: The address of the user to set the vault for - address vault: The address of the vault to set - bool forfeitOldShares: Whether to forfeit old shares. WARNING: This will reset the user's balance to 0.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateConfig((string,uint256))\":{\"details\":\"For `address` parameters, the `value` is converted to `uint160` and then to `address`\",\"params\":{\"params\":\"UpdateConfigParams struct containing the following fields: - string key: The configuration parameter to update - uint256 value: The value to update\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"version()\":{\"returns\":{\"_0\":\"The version of the Size protocol\"}},\"withdraw((address,uint256,address))\":{\"details\":\"This function burns 1:1 Deposit Tokens (e.g. szaUSDC, szETH) in exchange of the withdrawn tokens\",\"params\":{\"params\":\"WithdrawParams struct containing the following fields: - address token: The address of the token to withdraw - uint256 amount: The amount of tokens to withdraw (in decimals, e.g. 1_000e6 for 1000 USDC or 10e18 for 10 WETH) - uint256 to: The recipient of the withdrawal\"}}},\"title\":\"Size\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"buyCreditLimit((uint256,(uint256[],int256[],uint256[])))\":{\"notice\":\"Places a new loan offer in the orderbook\"},\"buyCreditLimitOnBehalfOf(((uint256,(uint256[],int256[],uint256[])),address))\":{\"notice\":\"Same as `buyCreditLimit` but `onBehalfOf`\"},\"buyCreditMarket((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"notice\":\"Obtains credit via lending or buying existing credit\"},\"buyCreditMarketOnBehalfOf(((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address),address,address))\":{\"notice\":\"Same as `buyCreditMarket` but `onBehalfOf`\"},\"claim((uint256))\":{\"notice\":\"Claim the repayment of a loan with accrued interest from the Variable Pool\"},\"collateralRatio(address)\":{\"notice\":\"Get the collateral ratio of a user\"},\"compensateOnBehalfOf(((uint256,uint256,uint256),address))\":{\"notice\":\"Same as `compensate` but `onBehalfOf`\"},\"data()\":{\"notice\":\"Get the data view\"},\"debtTokenAmountToCollateralTokenAmount(uint256)\":{\"notice\":\"Convert debt token amount to collateral token amount\"},\"deposit((address,uint256,address))\":{\"notice\":\"Deposit underlying borrow/collateral tokens to the protocol (e.g. USDC, WETH) Borrow tokens are always deposited into the Aave Variable Pool or User Vault Collateral tokens are deposited into the Size contract\"},\"depositOnBehalfOf(((address,uint256,address),address))\":{\"notice\":\"Same as `deposit` but `onBehalfOf`\"},\"feeConfig()\":{\"notice\":\"Get the fee configuration parameters\"},\"getBorrowOfferAPR(address,uint256,address,uint256)\":{\"notice\":\"Get the APR for a borrow offer in a collection from a rate provider\"},\"getBuyCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"notice\":\"Gets the swap data for buying credit as a market order\"},\"getCreditPosition(uint256)\":{\"notice\":\"Get the details of a credit position\"},\"getDebtPosition(uint256)\":{\"notice\":\"Get the details of a debt position\"},\"getLoanOfferAPR(address,uint256,address,uint256)\":{\"notice\":\"Get the APR for a loan offer in a collection from a rate provider\"},\"getPositionsCount()\":{\"notice\":\"Get the count of debt and credit positions\"},\"getSellCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"notice\":\"Returns the swap data for selling credit as a market order\"},\"getUserDefinedBorrowOfferAPR(address,uint256)\":{\"notice\":\"Get the APR for a user-defined borrow offer\"},\"getUserDefinedCopyBorrowOfferConfig(address)\":{\"notice\":\"Get the user copy borrow offer for a given user\"},\"getUserDefinedCopyLoanOfferConfig(address)\":{\"notice\":\"Get the user copy loan offer for a given user\"},\"getUserDefinedLoanOfferAPR(address,uint256)\":{\"notice\":\"Get the APR for a user-defined loan offer\"},\"getUserView(address)\":{\"notice\":\"Get the user view for a given user\"},\"isDebtPositionLiquidatable(uint256)\":{\"notice\":\"Check if a debt position is liquidatable\"},\"liquidate((uint256,uint256,uint256))\":{\"notice\":\"Liquidate a debt position In case of a protifable liquidation, part of the collateral remainder is split between the protocol and the liquidator The split is capped by the crLiquidation parameter (otherwise, the split for overdue loans could be too much) If the loan is overdue, a liquidator is charged from the borrower\"},\"liquidateWithReplacement((uint256,address,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Liquidate a debt position with a replacement borrower\"},\"multicall(bytes[])\":{\"notice\":\"Executes multiple calls in a single transaction\"},\"oracle()\":{\"notice\":\"Get the oracle parameters\"},\"partialRepay((uint256,uint256,address))\":{\"notice\":\"Partial repay a debt position by selecting a specific CreditPosition\"},\"pause()\":{\"notice\":\"Pauses the protocol Only callable by the PAUSER_ROLE\"},\"reinitialize()\":{\"notice\":\"Reinitialize the contract\"},\"repay((uint256,address))\":{\"notice\":\"Repay a debt position by transferring the amount due of borrow tokens to the protocol, which are deposited to the Variable Pool for the lenders to claim Partial repayment are currently unsupported\"},\"riskConfig()\":{\"notice\":\"Get the risk configuration parameters\"},\"selfLiquidate((uint256))\":{\"notice\":\"Self liquidate a credit position that is undercollateralized The lender cancels an amount of debt equivalent to their credit and a percentage of the protocol fees\"},\"selfLiquidateOnBehalfOf(((uint256),address,address))\":{\"notice\":\"Same as `selfLiquidate` but `onBehalfOf`\"},\"sellCreditLimit((uint256,(uint256[],int256[],uint256[])))\":{\"notice\":\"Places a new borrow offer in the orderbook\"},\"sellCreditLimitOnBehalfOf(((uint256,(uint256[],int256[],uint256[])),address))\":{\"notice\":\"Same as `sellCreditLimit` but `onBehalfOf`\"},\"sellCreditMarketOnBehalfOf(((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address),address,address))\":{\"notice\":\"Same as `sellCreditMarket` but `onBehalfOf`\"},\"setCopyLimitOrderConfigs(((uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256)))\":{\"notice\":\"Set the copy limit order configs for a user\"},\"setCopyLimitOrderConfigsOnBehalfOf((((uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256)),address))\":{\"notice\":\"Same as `setCopyLimitOrderConfigs` but `onBehalfOf`\"},\"setUserConfiguration((uint256,bool,bool,uint256[]))\":{\"notice\":\"Set the credit positions for sale\"},\"setUserConfigurationOnBehalfOf(((uint256,bool,bool,uint256[]),address))\":{\"notice\":\"Same as `setUserConfiguration` but `onBehalfOf`\"},\"setVariablePoolBorrowRate(uint128)\":{\"notice\":\"Sets the variable borrow rate Only callable by the BORROW_RATE_UPDATER_ROLE\"},\"setVault((address,bool))\":{\"notice\":\"Set the vault for a user\"},\"setVaultOnBehalfOf(((address,bool),address))\":{\"notice\":\"Set the vault for a user on behalf of another user\"},\"unpause()\":{\"notice\":\"Unpauses the protocol Only callable by the UNPAUSER_ROLE\"},\"updateConfig((string,uint256))\":{\"notice\":\"Updates the configuration of the protocol Only callable by the DEFAULT_ADMIN_ROLE\"},\"version()\":{\"notice\":\"Get the version of the Size protocol\"},\"withdraw((address,uint256,address))\":{\"notice\":\"Withdraw underlying borrow/collateral tokens from the protocol (e.g. USDC, WETH) Borrow tokens are always withdrawn from the Aave Variable Pool or User Vault Collateral tokens are withdrawn from the Size contract\"},\"withdrawOnBehalfOf(((address,uint256,address),address))\":{\"notice\":\"Same as `withdraw` but `onBehalfOf`\"}},\"notice\":\"See the documentation in {ISize}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/market/Size.sol\":\"Size\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@solmate/=lib/solmate/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/auth/=lib/solmate/src/auth/\",\":solmate/mixins/=lib/solmate/src/tokens/\",\":solmate/tokens/=lib/solmate/src/tokens/\",\":solmate/utils/=lib/solmate/src/utils/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20.sol\":{\"keccak256\":\"0xf57d62241e553696a1324d225663ba2e1a51db0a51ca236d0c1b009d89b6284c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d327db93b636790909aa137124f30a856ac1631cb79c476aa188f9627fda8d03\",\"dweb:/ipfs/QmaxpmEoBFioeNYmpxJemyZ7aYF2nX1NKW1XDqREm7i6es\"]},\"lib/aave-v3-core/contracts/interfaces/IAToken.sol\":{\"keccak256\":\"0x4ec2e3180174f248c9308e03fa837d44ca91ca6c1ad67c9951a2951d46948417\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://764b8e56a62c7277efdd6dc29e1ce3f88cb997613a3142a79effa5b3d908a3fa\",\"dweb:/ipfs/QmWAF7rDjyVqkwDR6RGRwYvB3V2fe3T7G1ZSC9UuHjAAZf\"]},\"lib/aave-v3-core/contracts/interfaces/IAaveIncentivesController.sol\":{\"keccak256\":\"0x906b896fdcb878d1472f740a70680f26e9a601dc28701113ab1f89cd9edce0bd\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b17473265a3ec2ec73dac797e0e60c147590f4e5cc7016f8eb61efbe072c49e0\",\"dweb:/ipfs/QmchQGeuyUw3VW4Kgwfg5Ys9ky1F7Q6QCcKbywbRaEUPt7\"]},\"lib/aave-v3-core/contracts/interfaces/IInitializableAToken.sol\":{\"keccak256\":\"0xb7c0da4c50ab10ce00e2325e649297923497738350092f64ef4b259307039dee\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://67af6435a258e6d08151b0c37884475e040c2939c76cfb0ba7afd6264c45be87\",\"dweb:/ipfs/Qmf5wup15foyfWrGvhiZDyasJn9XZFn4Vs14Dui9smeLa3\"]},\"lib/aave-v3-core/contracts/interfaces/IPool.sol\":{\"keccak256\":\"0xbfd2077251c8dc766a56d45f4b03eb07f3441323e79c0f794efea3657a99747f\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c6ff6221de0ea877932c73c0b99d3e4535f293053ae44f9f9d6b9d265e9af2f6\",\"dweb:/ipfs/QmSTaEKrhz1xNVnx4oBzWw8DenYPShVzJoP1A9GTEWkAzX\"]},\"lib/aave-v3-core/contracts/interfaces/IPoolAddressesProvider.sol\":{\"keccak256\":\"0x33d4308d9407b4ee2297fc4ba5acce1a96a6c658189e2778a4f6b90e032fb3b5\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://978336a2a40229ccc7749344be890862ea12e17e9fffe5bb977ba3841de07b5a\",\"dweb:/ipfs/QmScNrQfDSPg1afJmkCty6fZkETUrWTmEXWeTmHoe7mSqa\"]},\"lib/aave-v3-core/contracts/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0x72b3ea433cd3386f369f1643a154bf233ec60c02acd02c32088a97556207d2e4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a5907c61cf65126001feebd94c7a869eff95045106d97e21bf7f0d3de22caf9d\",\"dweb:/ipfs/QmPARkA7YpsBtd1F3JgszZREJk6TAkqRLBkjWZUadCu3sM\"]},\"lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol\":{\"keccak256\":\"0x618fe1876e322a10269e4a96e61e516bbbec883cb79e20b508f8010027178f07\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d2814d57ad47ba13959bf9a108c25374828a370f8d64b5adb7564876927a3a06\",\"dweb:/ipfs/Qmf9xfz7svNZAzgUHUTAj6gVC7SHiT7S4obfo1Sg1Fwzbx\"]},\"lib/aave-v3-core/contracts/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x771cb99fd8519c974f7e12130387c4d9a997a6e8d0ac10e4303b842fe53efa88\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f41689d1d58bc13678c749bae8830f5a8b19b89cd135e962bf07d483350f828\",\"dweb:/ipfs/QmQSNGDxjYGqT1GU2CZzsWUTNcAtcfkg1jDGTH516nCAfN\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x0d4d7d19a052a2ef9d17b28450133631188b895e1755747fa8ad0280aadfb534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838551e10cc07e570b70aee1078e490658d3a0ab8f4adfd4f3f2a565200753da\",\"dweb:/ipfs/QmceT7R3Pqzywyxr3MSEA7VXU4axZAPS6BLy92iV97rGdG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x00c23b80f74717a6765b606001c5c633116020d488ee8f53600685b8200e4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73d0bd5ff47377a97d52149a805d82112f88c9f4ae853ef246a536bd31ce1da\",\"dweb:/ipfs/QmagG3Yup65JQPSMZScubYTCeyuUyvKLxBM3X1er6xWWxf\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7b6690c21e94a45b825631a12581b40a753ea827de5ac9127a6b5833411317f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00045f2c18d7866618c65819fe180a9a9dab25c1974fab35069bdac9cf624b6b\",\"dweb:/ipfs/QmYk62QRqGHJ3rjqfEtbfEGFHWsenv5tNMbeMfq5HkTP44\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5d0c69ef32eae686acc22acfb1a54df9c91356e69adec593aa69eba83ae8f6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7a9fca2cb3d802c4f8a2d0fda84ccc7f880264885801c7df08373501dd22282\",\"dweb:/ipfs/QmdtM2Loz9NzNTuQ3RXNQCPBjoPUJw35Ukpt1MSM9XH3cD\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xecd5f3c702f549fb88555e44e5f2415a4dfd6db09081aec7e98c26b6a3739c06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed40e907a6d80458a0556a609d0d3991d718c20f9f1f21475e5ec739af523231\",\"dweb:/ipfs/QmejkwADsZRxkusNU94sswMJfpLrbq8RkJTbNccUEQpc7Y\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0x4e64844c56061cd90e0a80de73534a9166704c43eed579eb83f90bc2780ce968\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cba4fab5cebdddf644b901994a7f0f52b98885d4c56012f4dc51d52c2bf9de0e\",\"dweb:/ipfs/QmVyyrRmqXrAiapewWunRVgiPVFJHpH2hKiE1py1svMSNV\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol\":{\"keccak256\":\"0xf80abf13fb1fafc127ba4e792f240dd8ea7c8c893978cdfd8439c27fae9a037b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b04fc72a656bbf3631e9c2e67b9870a2d9d235185e833fe050e9606e6816a9aa\",\"dweb:/ipfs/QmUcz4bkEkJ9pwzFu1C3n97hBQ3st9U6qTAqCdyFwddKco\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x44fa2ce1182f6c2f6bead3d1737804bf7e112252ae86e0f2e92f9b8249603f43\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://54154e8665b98d65f5dc91b256551852cb47882180b501b260657122d207c0ea\",\"dweb:/ipfs/QmcfemK1A2PXYrWB5SBFGERpMCderbFRb8BtTzQDj1sUBp\"]},\"lib/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x7825565a4bb2a34a1dc96bbfead755785dfb0df8ef81bd934c43023689685645\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f44f4614d31e3d4864c7eb13620555253b84f6a69180f8745b7c6e246a9d125\",\"dweb:/ipfs/QmfNQUcXj3KL8h9u5PqbtEC6yRtwDbKNb48uMPjdwxsKnd\"]},\"lib/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x5c57de03a91cc2ec8939865dbbcb0197bb6c353b711075eefd8e0fca5e102129\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1e994c24fd891ef8a3f5dbf5eba42b34feaf05e0376a29f91322faa18054449c\",\"dweb:/ipfs/QmNdUJGUQxd1dPkMbnA5f5UNqakxRkQE5r7bTZJAuHeapS\"]},\"lib/v3-periphery/contracts/libraries/OracleLibrary.sol\":{\"keccak256\":\"0xe313f89c69c0f1c91f0722868313b4ceb14479b3e7a0abf52a1b9bbd9c18e81b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8ad09b061f3f533c116618c20cf01510108eebebb7ff8847b0f245b8ba368d53\",\"dweb:/ipfs/QmU6vdi5JjJfjK2KqonWvRg9NeuQWarj4B1YFN22Dh9VJM\"]},\"lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"src/collections/interfaces/ICollectionsManager.sol\":{\"keccak256\":\"0xf36eb32c1cf333628338639e1ffb9cad9cf8996a859a352af8cb6b2b781725a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77af02b46b40c96119a68de47edb7fb86bb040bfef2f0cd9d3b430bd10d34ff9\",\"dweb:/ipfs/QmXgH3jDkSK7EGjSQbgYGq1a8ozneEs4gBfvvoQxGVABHZ\"]},\"src/collections/interfaces/ICollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0x6708ad93239594105c63f7da068a6ec32ce1758b997d797ac9a33ad0f4a0d201\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bdbb974f4a3de9d48c5f464ffc8dff0b4fab51b4eb0095084df035eddc46e645\",\"dweb:/ipfs/Qma52cMxmWqBrve2ZWhoPfTbkHriAWLtr3rfJrYe4hk9GL\"]},\"src/collections/interfaces/ICollectionsManagerUserActions.sol\":{\"keccak256\":\"0x552b44f8d5735c65ecf42884d51257087bbfcd2c3feccf1f63fa5adc53984ff8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e4ec097f1e67e2c36117eaff4bb5de858a6f08c7dccacf25453df673eccde9\",\"dweb:/ipfs/Qmdmw2dJzKFdBmATxhtCAsLqHN7igEmVQGTBuonRXHm5K9\"]},\"src/collections/interfaces/ICollectionsManagerView.sol\":{\"keccak256\":\"0x3122f5f96caf4125f5841e2c38339ef3589d956c44bdf3028a0f083fc8719dce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6fe2a9b4f75c2a0bab02559c1e298f75154a91706595a3988f72ae893c09d8\",\"dweb:/ipfs/QmaKAc7aR4nvwtbBy5U6kxDF9zHeisEYVfeHxzMcuLy6py\"]},\"src/factory/interfaces/ISizeFactory.sol\":{\"keccak256\":\"0x0c7ee30a3e26cab285f78810a3684c8d91ea4d3c839f023b839144ec69d58780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6f58c02477567655a64a0106153a70fd8e20a42c572554c2d8768ec93ee74a5\",\"dweb:/ipfs/QmUZ9aNgjWMVKBk5B4LRwJmSUWZNpDcBsEw3AhYa1UffUV\"]},\"src/factory/interfaces/ISizeFactoryOffchainGetters.sol\":{\"keccak256\":\"0x01193f70622dd06fa303e488c255bf9b86f4fd2150ded107df75eabb1c200403\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81f74325395f6f3c01d55991aa3e8b2e26c3bd8d80b3e061f3c3d90bea81603d\",\"dweb:/ipfs/QmWKW2CQdeYgK1x5L6i9k43wJVYxu9Qy6QUJD5aFoykQ8p\"]},\"src/factory/interfaces/ISizeFactoryV1_7.sol\":{\"keccak256\":\"0x88d8fee7f821de312741e741fcd2867e55905159002ba4d8ced827778bebde29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42df9dfc39ad1b6812bb10c74d1398d3882e207e9611cb2e857187d7c79e09a\",\"dweb:/ipfs/QmTcbh5pZjV2S6zj5x3nzvRJBBsyy5DuNLRD4Dvg5Ydydq\"]},\"src/factory/interfaces/ISizeFactoryV1_8.sol\":{\"keccak256\":\"0x091167e33623c408b45abff264938404b8faf35c81601f8946e7b97ba1f50a3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://222eaf2047375c90123f02884ca4cf84c0b354389da4c607abdbefa325bc343e\",\"dweb:/ipfs/QmWmMeKpSEeMjEBBaTSPAPWVZJeqPyRutk2tj7GD6ZXwS4\"]},\"src/factory/libraries/Authorization.sol\":{\"keccak256\":\"0xd0759b2d19d649ede38497e36b8569cc49518a8f70927476e0713971306ab304\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79f301289c5908529bcaddcf4e1c18da9625460315462d9eca21192e1d26468d\",\"dweb:/ipfs/QmZZSLLP9hxdAVAqDhrqcdjPFL6evNKMvxEzcWUCfJmAn5\"]},\"src/helpers/ReentrancyGuardUpgradeableWithViewModifier.sol\":{\"keccak256\":\"0x44e0afa8b79734db3eb0278c752f0c74daf37e21b342ef7963ad28cfa6eddef6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c08003c5aaa58665815eba32b562db37d98eee0df1478bde70d3cdea490d02d\",\"dweb:/ipfs/QmQTPFYN7RMHRtBW2StZQX6c1QmK9gZH3msxsDo1makpBz\"]},\"src/market/Size.sol\":{\"keccak256\":\"0xc0514933bc7e3bc946eb49a6437c31496bd3efc782d33f0facaaa29d52717e26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7267656c00c12b7ebc01eebdacb1983deebac408f9d3823622a41e4d73ba630a\",\"dweb:/ipfs/QmdbVGrRnxLwHMuwWcTARYrDsaYkYiZWN1UX3sZG3KXBfo\"]},\"src/market/SizeStorage.sol\":{\"keccak256\":\"0xcbb653a667ff847b25dedcdefd77ceeb73539e58f1d3a3c5e0235f4f7027d7b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de6d2642e9cfcf23e2161d90c9a446f38dad849ed5405a52b6e829a63b45caf9\",\"dweb:/ipfs/QmRY4FeZ7kUQLUx9DYX9vCWmZzAzD95keSCeVZUf7tALHi\"]},\"src/market/SizeView.sol\":{\"keccak256\":\"0x9378ba3acccaa95f2c22b65407770d7b94ec002d7d6c52f6036abc6adf424c22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02de9ce70f3d3c3087aaac619e4469c4d40a352558ca8d52c12626be922e633e\",\"dweb:/ipfs/QmNfSrAfBtSZA93McLSiUXXvnp2yV8NEMsf88DfiQrxWuJ\"]},\"src/market/SizeViewData.sol\":{\"keccak256\":\"0x4fbd20e43987c211e0f8ab6ce467b4d017092a881ad544aa44a5d2f1d555df2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f4ada02248e1224356a5e1b4fce02c60e4f14c414052a09363e9803317eacf\",\"dweb:/ipfs/QmZ69LGdEoZWajqVWiHrDfctYmArkt9ZWMYARwX6htQQ7x\"]},\"src/market/interfaces/IMulticall.sol\":{\"keccak256\":\"0x6e37873de589b4bec14611f36d283ab797d149a2ea61be2d7f3ac32d503dbe41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88a1095d11f66268b50848a9868f28020583e8a4bb0d2885a59624c74e40f989\",\"dweb:/ipfs/QmSDYFNMkdriiJwn1crwmN4GGAsGCAMz89jaw3qAdALF7R\"]},\"src/market/interfaces/ISize.sol\":{\"keccak256\":\"0x1e6e27921076b80ac11d39898f986d4ba68efc43b1a56ce7a47ad620774beb0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c9200b7136891144e42186773d0f967d09ac4ef96104f679530621791d8282\",\"dweb:/ipfs/QmVeU8h4rUykppSz6rNjmnotPRwBUSVphNnkfQAwqkV7yT\"]},\"src/market/interfaces/ISizeAdmin.sol\":{\"keccak256\":\"0x1f2fda9cf43a960e920186ce0414d596f0c73e20e0ab262a047ffcab5b8a4a9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092faa4adc6268f096580faebcf426c87def65e02525abfecd04aa1acfceaa88\",\"dweb:/ipfs/QmWtjocrjvMRqKH47XiP7GKPRPKPCX3ApnpgpFjt3X9eRf\"]},\"src/market/interfaces/ISizeView.sol\":{\"keccak256\":\"0xf0df7ab138a3bbe12ae09fc44d9507ab66865e30a2ddcf4734cc3f373bdc314b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03922dee9f2f895d627a74162752b40df160d1aefa766067583cff055ce8b793\",\"dweb:/ipfs/QmTfCg5Bh4y4vwGEv5smTWjPrsrsBLizJ3xSbZqejgvW7Q\"]},\"src/market/interfaces/IWETH.sol\":{\"keccak256\":\"0x4f7e2b2d5033a819263abfafba2aa513dd9a25bb1ce21cfe497daa0ac4a9ec7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e209482985a7a680a0ffc2a6a6e3d0c1fb832db256dc1240c5b054fab19253e\",\"dweb:/ipfs/QmWQC9Qy3Mn9xfvM9xkcru9wcdTgq4jMjiJSbDtSMRfc9t\"]},\"src/market/interfaces/v1.7/ISizeV1_7.sol\":{\"keccak256\":\"0xf6dcf99539326bae7e1465eac7857f1a62d1d148d065510acea1a3f9a7e9d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87776d27879eb9e715f0b56ce5deb97f726b8018df831f2538563c3a8aa743c9\",\"dweb:/ipfs/QmdUwAo4orzYFXSogwjuZqnXGyrA3bZhpMVV4962E8ciSR\"]},\"src/market/interfaces/v1.8/ISizeV1_8.sol\":{\"keccak256\":\"0x539e339de13cfb2778f0b88e0962e72a0953f7ed41306815ba6da72f308ecbff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e5b98cdd5bc9107f4e890fd0c5ea6bfde4b5ffa803c72390a13579f4f81b114\",\"dweb:/ipfs/QmSQ7jXfUbhoScWLPwCkSaerqHxeBWmz6H1VVKtR8rYHhP\"]},\"src/market/interfaces/v1.8/ISizeViewV1_8.sol\":{\"keccak256\":\"0xd44b700b471fcdd6dab74676eca4a3d2ab7435c478cdc83c09ff3426c3eec9b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://440c6ab93d7bf25b47885feb522e0f71963a2bb3247ba820c0f5ce6c3274feb7\",\"dweb:/ipfs/QmV4cAiAb16rMZeKWqtDe69Z9NKWHcuxvGJ6pqxbBa9GUu\"]},\"src/market/libraries/AccountingLibrary.sol\":{\"keccak256\":\"0x7951928ccae855e9fabc380ad88075fee1822e00dadeeb969c5add0e7b1e9a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b895fa756fd379def6e9cb674a9618beeb7e7cc2f9708816cbafe36a56acd769\",\"dweb:/ipfs/QmbAg4HReEqmoJ23JrJpy7Rp2cgZA87VUgMrBFW3yr6Cp8\"]},\"src/market/libraries/Errors.sol\":{\"keccak256\":\"0xed73df3f39ba612c526ea09234b730cfdfa5ed399b279bb738fbfd5696b38bd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c0c78ee291a63f618a99ef99dfd2e6d2ff973f38a2b6fb92001a0a9c6329702\",\"dweb:/ipfs/QmQfuhKVMKebzmFYAN6EEDCWr7PpG884Xbqc6VL5XwVmuM\"]},\"src/market/libraries/Events.sol\":{\"keccak256\":\"0xce181000a07927aa14c59bc6d514b9829386610f4f6e8e987e7b577301707d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfa93b9e1ea3b94e298657b38c8ded2f180296a8054d9593b37695644b075908\",\"dweb:/ipfs/QmZ2kyGivGEo5smxeHZ4BZsFNEuy2WanW6PFbJaLrFcFMo\"]},\"src/market/libraries/LoanLibrary.sol\":{\"keccak256\":\"0x40dcae0ebbfff42282a5ceb00b5698c882242e028740099bc5828a08fa7e77e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efb877878b973bb6e8913cc3c4f4948ca7a43d0036dc243862cc8de7a3e92384\",\"dweb:/ipfs/QmYt8p1H7gAyTExvnKV1Anhfnjk5o774yi4ibHGUxByExv\"]},\"src/market/libraries/Math.sol\":{\"keccak256\":\"0xa270b1631b8b469d0e4bfddfaa0bf87ee285fa7532e1ed31f28674356fce0e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f0d027e9af0e81111d0b573c836502f94f5f0e5a3b5c0fc8ff025060e78bb53\",\"dweb:/ipfs/QmbS7Wnub3nmeo7yfeQht68MzWwMrQ3Ef7bUtiNtDMtXDx\"]},\"src/market/libraries/Multicall.sol\":{\"keccak256\":\"0xaf98fced0f94fce8f0c27d1f5160019eeb17e3eb67316ca245f52c39df257fa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://852c668a4f10a61c2ceba43aac27993869ae591b8479c88d5c71bd4760cab1b6\",\"dweb:/ipfs/Qmer5YE99KsLeSKXf1QLxeDcUcLNgYkjFRwHzvBuG7JtUp\"]},\"src/market/libraries/OfferLibrary.sol\":{\"keccak256\":\"0x55b32a6221d79312c857fa936342e229a74e440197e87603dfda8c57335c9401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9b3e4a528f8360c5ca36d66cfe1d60749613ccb722d1f7af91398bfbf397b9a\",\"dweb:/ipfs/QmRzh239xa5YHMrEWtAt4oCbzFdwNDqDgtz8EGZGiFqZW3\"]},\"src/market/libraries/RiskLibrary.sol\":{\"keccak256\":\"0xc639312f28fb460000aff9c0869ffb2c3bdaab5e6d5aff6895df6bc2d3461b7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4eb18a5f3fc5ecacc2a166e0f5c456246bcff32284d29fa14d819f7616c7718d\",\"dweb:/ipfs/QmR9aSvd6G1qmqTKvT21fHk8EVeKGjKysn34qpCFTXhKXz\"]},\"src/market/libraries/YieldCurveLibrary.sol\":{\"keccak256\":\"0x8d4b1f45d67387169c3b38cc034305eba91ad306dac7021d4658e3b8bbc9a135\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438376203571e01cbb26ea58c192d3036a1e623c0c5897c52aeafaa90e281cd3\",\"dweb:/ipfs/QmcRNJKsudM9bZvCPCSEQWxPHvVEfQD1u2MPf8S33fh3o3\"]},\"src/market/libraries/actions/BuyCreditLimit.sol\":{\"keccak256\":\"0xccb77182ce62b7ea147ee65ad7e32076f9e565a2605c18842087103e471f79f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://571a3265ef2664d9fea268e229af1bc0e430f458efe6898a03532de799d959ef\",\"dweb:/ipfs/QmSA1hphKNeRdqKtKpbfM3yof9TTd13r9X5ei7jNiuhcwQ\"]},\"src/market/libraries/actions/BuyCreditMarket.sol\":{\"keccak256\":\"0x8bc8b7c8c274648d666d0e83e3605f1cbc02b63f283fb72485e32cb2c9fdb1d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dfd2009d13f1cd03d1eff41195c66617b51390d65d7c805c0bd3ef288b9a5925\",\"dweb:/ipfs/QmczwzFqX7vugWArcsLvjzGzCkBsRyyrv5s8nUkq2iAnHx\"]},\"src/market/libraries/actions/Claim.sol\":{\"keccak256\":\"0x0145b5a2bef3cb5b6348c0826a020eaaf8db1880bb7aa2804bf03cc16eaf2adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de61cb5c77a1be1cc00990f8b21e1ad41005c811309244acb314d3e3f2324427\",\"dweb:/ipfs/QmVJJ8RgFXtNg3KLcevf99ZyhXQQtAH32i7MZXM1VLrbyd\"]},\"src/market/libraries/actions/Compensate.sol\":{\"keccak256\":\"0x5fa7ce8b74eeea09d12b78e3b31dbc7b37fca58b235299ad5d9f8e99ea400719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fbeff16ba76d1e3735f4d067ba16da7b0f35176ff9ea501a99f94063936bc5d\",\"dweb:/ipfs/QmYyogfmQmrpEksBc9uSjVQvYAWdaq31pJ3j6aAnc8D1rA\"]},\"src/market/libraries/actions/Deposit.sol\":{\"keccak256\":\"0x75e2039804c341b06705e712a8403350bf3860207178872eba02b12acc1a55e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76f871e1a3b6e9accffffac39be2a51d90cb16028511f0f54597bdb8e8c2c6fe\",\"dweb:/ipfs/QmNzQiqWUiVnqpL9EhyG9tbF36nksZJ3YeT3hNioQLCpwG\"]},\"src/market/libraries/actions/Initialize.sol\":{\"keccak256\":\"0xbad2d5f92aaeee28a87c1feda397f787cf1a2f8432bf05371f79b2309e9858f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c6959ee090add484fe99aa21bb8e879c36a97a1d00b4d49dfade775c4813a63\",\"dweb:/ipfs/QmZycV28jdCXWHy7QV7uqtqxaiReZaTYtvvgECuHb3gwJQ\"]},\"src/market/libraries/actions/Liquidate.sol\":{\"keccak256\":\"0x20e7ccfb443548a7325a592034bcfb6f474c313f9cf0453fafc45777a280d85f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec7a9075a20c68b7ca70c6b283692724d2e42faf0596187bd1075d8d7b6c03b1\",\"dweb:/ipfs/QmbHMZ2EmbhY4w51vWUkuEvr2r8XEkJkYvM56Tk5h1yr9G\"]},\"src/market/libraries/actions/LiquidateWithReplacement.sol\":{\"keccak256\":\"0xbf8028638ffc6a29e6b93a8f795ddbdfb5cb119c95c8c7bc0c446b3681514fca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f4db7ddad5d0e210fd133073ec80d63bdc7a6026ff74744fdc4aa83918b1230\",\"dweb:/ipfs/QmXSYimeiJRTx4sdBKZsPdY4HSDhK7gbsjB3bm596j7oT5\"]},\"src/market/libraries/actions/PartialRepay.sol\":{\"keccak256\":\"0xcca168dab87cf6c5a383340443041194ea3ca272aa48cdbe7ffcb263be767900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd4a81eeab2fbb3ac34e21fdfe3acf4cbae5802984ddd0eabcc4b5dcf5b80315\",\"dweb:/ipfs/QmVZ9wKB1vjGghXfCE3AFNGTiGLekqbLEELSdJ26eeXy3F\"]},\"src/market/libraries/actions/Repay.sol\":{\"keccak256\":\"0x8ce3d2f0cf14efb0489f509f244c05d8045ea5eecffceb2d932321d4f62a5474\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://773030fd26b7cd147d3c1c745a858e541dee98331c362de19e7c7f021be7c44e\",\"dweb:/ipfs/QmZ8Du3qDSdpM64JCD6PqfqQ4DtpcfaVX6ujiCEJhgUhX5\"]},\"src/market/libraries/actions/SelfLiquidate.sol\":{\"keccak256\":\"0x2d71cff942efc93fb7aa3a0a636e44562e0fa44ba4d503f323c6d08e7fdd8af3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdc43c74a42cffbf3844939df1d21a2b392ad3596ece8f1e9a6ebe08c2ec64be\",\"dweb:/ipfs/QmRUScCkvE4EADEUEvdwrsnzfLsq7xjFt1xsSZ4PZfs6J7\"]},\"src/market/libraries/actions/SellCreditLimit.sol\":{\"keccak256\":\"0xe8fe9ab69faccffa8539167973d13c5afe04ca8358316a092540171d084654b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c626cb1ad9347b0eabd162f590c61175cdc687958bc6684843201713c5efa89\",\"dweb:/ipfs/QmNqZc3Zh2Nvj6exvG89XShBY4WtBJSh6iKWr7gZB8sQ3k\"]},\"src/market/libraries/actions/SellCreditMarket.sol\":{\"keccak256\":\"0xf4bd799bb7cf51c565d530ff42cebf0a3b1d2b01a783f484c3ffda112eca962d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7d0d213d6c00b09f7508887541968939a960a86160f6812143bff9c07ecf86\",\"dweb:/ipfs/QmRafSq5sVAsmpttMGWM1FJJz9Gg1bTrVthP6k2Jppe9gr\"]},\"src/market/libraries/actions/SetCopyLimitOrderConfigs.sol\":{\"keccak256\":\"0x8f6f00418e9f62d99e316097724d50ae10369fc9049b1c5caff7d219410cc79e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36222343f8752b105bd7414e53281f30cdd1aa3ca45539dcfb5fe22d6eb5fdde\",\"dweb:/ipfs/QmRCpmVtGTXnRUUR5wPGjW1oSPg8PRcP39Sigfyt4YkXyG\"]},\"src/market/libraries/actions/SetUserConfiguration.sol\":{\"keccak256\":\"0x914026fea966b75688fe25a3ac2782a426134ebceb3f1b1719e650f2317dd04e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb5a25ca819ecf4137af74c23829aaf2d784b868e710f4b563378481426dd4a\",\"dweb:/ipfs/QmUTdYB2zr3gDaJ9Qj8ma8RypzdKDAeKWj1UwCS8MmnRrP\"]},\"src/market/libraries/actions/SetVault.sol\":{\"keccak256\":\"0xa9fd4994702f7dc36369fbfb3f7a3ed767b36619bf28471d7d7098aabca62dab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7eb78f54189a5ab0247264303eea0e576d9aa8a1ea3d81e3e4aefe1baef13a0\",\"dweb:/ipfs/Qmf7DVjjGGRDC4UY1tzLztwG6pEsutWGxiZ2ve1czCE93S\"]},\"src/market/libraries/actions/UpdateConfig.sol\":{\"keccak256\":\"0x040b1b2b4dfb446b50bce809c070a3b977e7c614f2bfdf632b10f9c89ec8d80e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://067a98624ca328a30debcd8d09adb675ad3ebeafe0829269ca5f42574babcca3\",\"dweb:/ipfs/QmU3K7oJnmknBtCyVNR6d2fLsUFCPvozr1DvY9W42cw1Eu\"]},\"src/market/libraries/actions/Withdraw.sol\":{\"keccak256\":\"0x1c0692507acd9052c4831b4a78fd6a7d54b7ab9743bf49e170441abdd5694247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1de43235c6ac35a2a752173ab67346feb750948d2091efd20053f051d7baa9\",\"dweb:/ipfs/QmXtbxAzykvnBSRuDWSFYybL6V7pqGwhjCGhkKQhSeb59i\"]},\"src/market/token/NonTransferrableRebasingTokenVault.sol\":{\"keccak256\":\"0x9270ebc18028e353a18b58b3cc51c90529d18c7ac04b579e84df31f48ad883bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffde31cb27e6f25019588e4807879de70b3cecb934c03b92a5cd663da153da4\",\"dweb:/ipfs/QmXHCi4Ggucp2Q4EAhFgrwi616WB993Ha82uw9bzyUM5Na\"]},\"src/market/token/NonTransferrableToken.sol\":{\"keccak256\":\"0xf82118604ddbcd5d9ff708d739396e993d9621cff7b07f22a519141ca39a9e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f371fb37a2ac76630302b1284d62e8657f038b504ce9884723574c2a3de32ec\",\"dweb:/ipfs/QmRsjmBirftC8Jih4jBG2BoJmpe4RRAAsEwsmtLjWicTVf\"]},\"src/market/token/adapters/IAaveAdapter.sol\":{\"keccak256\":\"0xd88333fa5a565a78d2fbdf408f2ff89b69f900bd13ae84e1b102f1a1527c1777\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1890c9632e9fa607c74524da6049080fe42bde8fdc6117136e12e2277dbac02e\",\"dweb:/ipfs/QmSD6udpnnRsXoqk6yHxjKpDxiQgmoxQTj3CoXrP64bxKd\"]},\"src/market/token/adapters/IAdapter.sol\":{\"keccak256\":\"0x579f476cae67f70982f6d158f90490ccacb37c88d4c9e4318ccee9be0d3ff692\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80e9fc7d1fa0dfa85846e80a7ba766c68a39310c604d326f547f9278c2943574\",\"dweb:/ipfs/QmS1fNU7hrH21a2ZusfxMqaQvtzAgbdJkcbfw8ps3QB5oQ\"]},\"src/oracle/IPriceFeed.sol\":{\"keccak256\":\"0x7ec983afe56cc8eee5d4b3573a51665ad0cfc8835f8fb8fd864b2a5a119f9a90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fc706986c7c132d4b0b95ec2f7b3aa49def6511ebe84643ee1359b2318da48\",\"dweb:/ipfs/QmQCwub8SCenVvQnVtL24Eny3jNZrugoxKsu86da55nBKJ\"]},\"src/oracle/adapters/ChainlinkPriceFeed.sol\":{\"keccak256\":\"0x71a4ccb7d9469f4d7a914a81c754b1278152a387f8154e0f9793e0e3d010a599\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d953653f6481b344d0d00a677a8301f3006a50c3b90744c39cd3eda6f508818b\",\"dweb:/ipfs/QmYR1RvdMboMpH9ykJN5WwuC3AabSvPS2JA4t4afxa7gyh\"]},\"src/oracle/adapters/ChainlinkSequencerUptimeFeed.sol\":{\"keccak256\":\"0x3d200d7fcc7c457a201f2bb32a0b68ea13b2b697cb300bbd587828bff5ffe8b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d72923e346e73eb0d42d055437dc6df059c3a8f27b08ff5aacd7cf7fdf90eec5\",\"dweb:/ipfs/QmPYENtSCwseMxYtQeKAkVe8DuCJYzRGpFRxDgw85xf2g8\"]},\"src/oracle/adapters/UniswapV3PriceFeed.sol\":{\"keccak256\":\"0x84027f9673163df8f7dcbd7c828cf5bada6a9c7de1986d3821ec75004a11f639\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0caf13ef11f4ad681f395ee48145d72fcd3a1eae5b439efb132be9cccd8f1243\",\"dweb:/ipfs/QmdrnR1auzKaQhZ7AqWRKHnajw1Y6oLmdNFYJzKLzb5E72\"]},\"src/oracle/v1.5.1/PriceFeed.sol\":{\"keccak256\":\"0x36473f98f23968eaab386e44c1404652c7ef88c09db9772ab3195d8305829762\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5db471c144f3a43e9e07391890e7b29e39b64ae3fb0e73b66dd313801b03542a\",\"dweb:/ipfs/Qmf5GMB6SdKNCUPCbV4nYmxUjg6z3iKiweYU2ajY9BrGbC\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"dueDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"}],\"name\":\"DUE_DATE_GREATER_THAN_MAX_DUE_DATE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"INVALID_OFFER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"crBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crAfter\",\"type\":\"uint256\"}],\"name\":\"MUST_IMPROVE_COLLATERAL_RATIO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_TENOR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct BuyCreditLimitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"buyCreditLimit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct BuyCreditLimitParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditLimitOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"buyCreditLimitOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"buyCreditMarket\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditMarketOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"buyCreditMarketOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct ClaimParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"collateralRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionWithDebtToRepayId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionToCompensateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct CompensateParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"compensate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionWithDebtToRepayId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionToCompensateId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct CompensateParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct CompensateOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"compensateOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"data\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nextDebtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextCreditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"underlyingCollateralToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"underlyingBorrowToken\",\"type\":\"address\"},{\"internalType\":\"contract NonTransferrableToken\",\"name\":\"collateralToken\",\"type\":\"address\"},{\"internalType\":\"contract NonTransferrableRebasingTokenVault\",\"name\":\"borrowTokenVault\",\"type\":\"address\"},{\"internalType\":\"contract NonTransferrableToken\",\"name\":\"debtToken\",\"type\":\"address\"},{\"internalType\":\"contract IPool\",\"name\":\"variablePool\",\"type\":\"address\"}],\"internalType\":\"struct DataView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"debtTokenAmountToCollateralTokenAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"struct DepositParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"struct DepositParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct DepositOnBehalfOfParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"depositOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"swapFeeAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationRewardPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"overdueCollateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"internalType\":\"struct InitializeFeeConfigParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getBorrowOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct BuyCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getBuyCreditMarketSwapData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forSale\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct CreditPosition\",\"name\":\"creditPosition\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cashAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"internalType\":\"struct BuyCreditMarket.SwapDataBuyCreditMarket\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"name\":\"getCreditPosition\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forSale\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct CreditPosition\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"name\":\"getDebtPosition\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"futureValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dueDate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidityIndexAtRepayment\",\"type\":\"uint256\"}],\"internalType\":\"struct DebtPosition\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getLoanOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getSellCreditMarketSwapData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forSale\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"credit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct CreditPosition\",\"name\":\"creditPosition\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"creditAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cashAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"internalType\":\"struct SellCreditMarket.SwapDataSellCreditMarket\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getUserDefinedBorrowOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserDefinedCopyBorrowOfferConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserDefinedCopyLoanOfferConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getUserDefinedLoanOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserView\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct LimitOrder\",\"name\":\"loanOffer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct LimitOrder\",\"name\":\"borrowOffer\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"openingLimitBorrowCR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allCreditPositionsForSaleDisabled\",\"type\":\"bool\"}],\"internalType\":\"struct User\",\"name\":\"user\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralTokenBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowTokenBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"debtBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct UserView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"swapFeeAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationRewardPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"overdueCollateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"internalType\":\"struct InitializeFeeConfigParams\",\"name\":\"f\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"crOpening\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crLiquidation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"internalType\":\"struct InitializeRiskConfigParams\",\"name\":\"r\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"variablePoolBorrowRateStaleRateInterval\",\"type\":\"uint64\"}],\"internalType\":\"struct InitializeOracleParams\",\"name\":\"o\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingCollateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingBorrowToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variablePool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrowTokenVault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sizeFactory\",\"type\":\"address\"}],\"internalType\":\"struct InitializeDataParams\",\"name\":\"d\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isUserDefinedBorrowOfferNull\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isUserDefinedLoanOfferNull\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCollateralProfit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct LiquidateParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"liquidate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidatorProfitCollateralToken\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minimumCollateralProfit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct LiquidateWithReplacementParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"liquidateWithReplacement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidatorProfitCollateralToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidatorProfitBorrowToken\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"_data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"variablePoolBorrowRateStaleRateInterval\",\"type\":\"uint64\"}],\"internalType\":\"struct InitializeOracleParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionWithDebtToRepayId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"internalType\":\"struct PartialRepayParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"partialRepay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"debtPositionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"}],\"internalType\":\"struct RepayParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"repay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"crOpening\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crLiquidation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"internalType\":\"struct InitializeRiskConfigParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct SelfLiquidateParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"selfLiquidate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"}],\"internalType\":\"struct SelfLiquidateParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct SelfLiquidateOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"selfLiquidateOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct SellCreditLimitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"sellCreditLimit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxDueDate\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"tenors\",\"type\":\"uint256[]\"},{\"internalType\":\"int256[]\",\"name\":\"aprs\",\"type\":\"int256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"marketRateMultipliers\",\"type\":\"uint256[]\"}],\"internalType\":\"struct YieldCurve\",\"name\":\"curveRelativeTime\",\"type\":\"tuple\"}],\"internalType\":\"struct SellCreditLimitParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditLimitOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"sellCreditLimitOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"sellCreditMarket\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditPositionId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exactAmountIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditMarketParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"struct SellCreditMarketOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"sellCreditMarketOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct SetCopyLimitOrderConfigsParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"setCopyLimitOrderConfigs\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct SetCopyLimitOrderConfigsParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct SetCopyLimitOrderConfigsOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"setCopyLimitOrderConfigsOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"openingLimitBorrowCR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allCreditPositionsForSaleDisabled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"creditPositionIdsForSale\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"creditPositionIds\",\"type\":\"uint256[]\"}],\"internalType\":\"struct SetUserConfigurationParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"setUserConfiguration\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"openingLimitBorrowCR\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allCreditPositionsForSaleDisabled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"creditPositionIdsForSale\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"creditPositionIds\",\"type\":\"uint256[]\"}],\"internalType\":\"struct SetUserConfigurationParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct SetUserConfigurationOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"setUserConfigurationOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forfeitOldShares\",\"type\":\"bool\"}],\"internalType\":\"struct SetVaultParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"setVault\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"forfeitOldShares\",\"type\":\"bool\"}],\"internalType\":\"struct SetVaultParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct SetVaultOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"setVaultOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct UpdateConfigParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"struct WithdrawParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"struct WithdrawParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"internalType\":\"struct WithdrawOnBehalfOfParams\",\"name\":\"externalParams\",\"type\":\"tuple\"}],\"name\":\"withdrawOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Size (https://size.credit/)\",\"custom:security-contact\":\"security@size.credit\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"buyCreditLimit((uint256,(uint256[],int256[],uint256[])))\":{\"params\":{\"params\":\"BuyCreditLimitParams struct containing the following fields: - uint256 maxDueDate: The maximum due date of the loan (e.g., 1712188800 for April 4th, 2024) - YieldCurve curveRelativeTime: The yield curve for the loan offer, a struct containing the following fields: - uint256[] tenors: The relative timestamps of the yield curve (for example, [30 days, 60 days, 90 days]) - int256[] aprs: The aprs of the yield curve (for example, [0.05e18, 0.07e18, 0.08e18] to represent 5% APR, 7% APR, and 8% APR, linear interest, respectively) - uint256[] marketRateMultipliers: The market rate multipliers of the yield curve (for example, [1e18, 1.2e18, 1.3e18] to represent 100%, 120%, and 130% of the market borrow rate, respectively)\"}},\"buyCreditMarket((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"params\":{\"params\":\"BuyCreditMarketParams struct containing the following fields: - address borrower: The address of the borrower (optional, for lending) - uint256 creditPositionId: The id of the credit position to buy (optional, for buying credit) - uint256 tenor: The tenor of the loan - uint256 amount: The amount of tokens to lend or credit to buy - bool exactAmountIn: Indicates if the amount is the value to be transferred or used to calculate the transfer amount - uint256 deadline: The maximum timestamp for the transaction to be executed - uint256 minAPR: The minimum APR the caller is willing to accept\"}},\"buyCreditMarketOnBehalfOf(((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address),address,address))\":{\"details\":\"When emitting the `SwapData` event, the recipient is set as the `lender` param, which is inconsistent with the `BuyCreditMarket` event emitted just before, where `lender` is passed as `onBehalfOf`. The reason is that `SwapData` emits only debt/credit recipients, while `BuyCreditMarket` emits both and also `onBehalfOf`.\"},\"claim((uint256))\":{\"details\":\"Both ACTIVE and OVERDUE loans can't be claimed because the money is not in the protocol yet. CLAIMED loans can't be claimed either because its credit has already been consumed entirely either by a previous claim or by exiting before\",\"params\":{\"params\":\"ClaimParams struct containing the following fields: - uint256 creditPositionId: The id of the credit position to claim\"}},\"collateralRatio(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The collateral ratio of the user\"}},\"compensate((uint256,uint256,uint256))\":{\"params\":{\"params\":\"CompensateParams struct containing the following fields: - uint256 creditPositionWithDebtToRepayId: The id of the credit position ID with debt to repay - uint256 creditPositionToCompensateId: The id of the credit position to compensate - uint256 amount: The amount of tokens to compensate (in decimals, e.g. 1_000e6 for 1000 aUSDC)\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"data()\":{\"returns\":{\"_0\":\"The data view\"}},\"debtTokenAmountToCollateralTokenAmount(uint256)\":{\"params\":{\"amount\":\"The amount of debt tokens\"},\"returns\":{\"_0\":\"The equivalent amount of collateral tokens\"}},\"deposit((address,uint256,address))\":{\"details\":\"The caller must approve the transfer of the token to the protocol. This function mints 1:1 Deposit Tokens (e.g. szaUSDC, szETH) in exchange of the deposited tokens\",\"params\":{\"params\":\"DepositParams struct containing the following fields: - address token: The address of the token to deposit - uint256 amount: The amount of tokens to deposit - uint256 to: The recipient of the deposit\"}},\"feeConfig()\":{\"returns\":{\"_0\":\"The fee configuration parameters\"}},\"getBorrowOfferAPR(address,uint256,address,uint256)\":{\"params\":{\"collectionId\":\"The ID of the collection\",\"rateProvider\":\"The address of the rate provider\",\"tenor\":\"The tenor of the loan\",\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getBuyCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"params\":{\"params\":\"The input parameters for buying credit as a market order\"},\"returns\":{\"_0\":\"swapData The swap data for buying credit as a market order\"}},\"getCreditPosition(uint256)\":{\"params\":{\"creditPositionId\":\"The ID of the credit position\"},\"returns\":{\"_0\":\"The CreditPosition struct containing the details of the credit position\"}},\"getDebtPosition(uint256)\":{\"params\":{\"debtPositionId\":\"The ID of the debt position\"},\"returns\":{\"_0\":\"The DebtPosition struct containing the details of the debt position\"}},\"getLoanOfferAPR(address,uint256,address,uint256)\":{\"params\":{\"collectionId\":\"The ID of the collection\",\"rateProvider\":\"The address of the rate provider\",\"tenor\":\"The tenor of the loan\",\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getSellCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"params\":{\"params\":\"The input parameters for selling credit as a market order\"},\"returns\":{\"_0\":\"swapData The swap data for selling credit as a market order\"}},\"getUserDefinedBorrowOfferAPR(address,uint256)\":{\"params\":{\"borrower\":\"The address of the borrower\",\"tenor\":\"The tenor of the loan\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getUserDefinedCopyBorrowOfferConfig(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The user copy borrow offer\"}},\"getUserDefinedCopyLoanOfferConfig(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The user copy loan offer\"}},\"getUserDefinedLoanOfferAPR(address,uint256)\":{\"params\":{\"lender\":\"The address of the lender\",\"tenor\":\"The tenor of the loan\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getUserView(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"The user view\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isUserDefinedBorrowOfferNull(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user-defined borrow offer is null, false otherwise\"}},\"isUserDefinedLoanOfferNull(address)\":{\"params\":{\"user\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user-defined loan offer is null, false otherwise\"}},\"liquidate((uint256,uint256,uint256))\":{\"params\":{\"params\":\"LiquidateParams struct containing the following fields: - uint256 debtPositionId: The id of the debt position to liquidate - uint256 minimumCollateralProfit: The minimum collateral profit that the liquidator is willing to accept from the borrower (keepers might choose to pass a value below 100% of the cash they bring and take the risk of liquidating unprofitably)\"},\"returns\":{\"liquidatorProfitCollateralToken\":\"The amount of collateral tokens the the fee recipient received from the liquidation\"}},\"liquidateWithReplacement((uint256,address,uint256,uint256,uint256,uint256,address))\":{\"details\":\"This function works exactly like `liquidate`, with an added logic of replacing the borrower on the storage When liquidating with replacement, nothing changes from the lenders' perspective, but a spread is created between the previous borrower rate and the new borrower rate. As a result of the spread of these borrow aprs, the protocol is able to profit from the liquidation. Since the choice of the borrower impacts on the protocol's profit, this method is permissioned\",\"params\":{\"params\":\"LiquidateWithReplacementParams struct containing the following fields: - uint256 debtPositionId: The id of the debt position to liquidate - uint256 minimumCollateralProfit: The minimum collateral profit that the liquidator is willing to accept from the borrower (keepers might choose to pass a value below 100% of the cash they bring and take the risk of liquidating unprofitably) - address borrower: The address of the replacement borrower - uint256 deadline: The maximum timestamp for the transaction to be executed - uint256 minAPR: The minimum APR the caller is willing to accept\"},\"returns\":{\"liquidatorProfitBorrowToken\":\"The amount of borrow tokens liquidator received from the liquidation\",\"liquidatorProfitCollateralToken\":\"The amount of collateral tokens liquidator received from the liquidation\"}},\"multicall(bytes[])\":{\"details\":\"This function allows for batch processing of multiple interactions with the protocol in a single transaction. This allows users to take actions that would otherwise be denied due to deposit limits.\",\"params\":{\"data\":\"An array of bytes encoded function calls to be executed in sequence.\"},\"returns\":{\"results\":\"An array of bytes representing the return data from each function call executed.\"}},\"oracle()\":{\"returns\":{\"_0\":\"The oracle parameters\"}},\"partialRepay((uint256,uint256,address))\":{\"details\":\"The partial repay amount should be less than the debt position future value\",\"params\":{\"params\":\"PartialRepayParams struct containing the following fields: - uint256 creditPositionWithDebtToRepayId: The id of the credit position with debt to repay - uint256 amount: The amount of tokens to repay (in decimals, e.g. 1_000e6 for 1000 aUSDC) - address borrower: The address of the borrower\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"details\":\"Initializes the reentrancy guard\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"repay((uint256,address))\":{\"details\":\"The Variable Pool liquidity index is snapshotted at the time of the repayment in order to calculate the accrued interest for lenders to claim\",\"params\":{\"params\":\"RepayParams struct containing the following fields: - uint256 debtPositionId: The id of the debt position to repay\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"riskConfig()\":{\"returns\":{\"_0\":\"The risk configuration parameters\"}},\"selfLiquidate((uint256))\":{\"details\":\"The user is prevented to self liquidate if a regular liquidation would be profitable\",\"params\":{\"params\":\"SelfLiquidateParams struct containing the following fields: - uint256 creditPositionId: The id of the credit position to self-liquidate\"}},\"sellCreditLimit((uint256,(uint256[],int256[],uint256[])))\":{\"params\":{\"params\":\"SellCreditLimitParams struct containing the following fields: - YieldCurve curveRelativeTime: The yield curve for the borrow offer, a struct containing the following fields: - uint256[] tenors: The relative timestamps of the yield curve (for example, [30 days, 60 days, 90 days]) - int256[] aprs: The aprs of the yield curve (for example, [0.05e18, 0.07e18, 0.08e18] to represent 5% APR, 7% APR, and 8% APR, linear interest, respectively) - uint256[] marketRateMultipliers: The market rate multipliers of the yield curve (for example, [0.99e18, 1e18, 1.1e18] to represent 99%, 100%, and 110% of the market borrow rate, respectively)\"}},\"sellCreditMarket((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"params\":{\"params\":\"SellCreditMarketParams struct containing the following fields: - address lender: The address of the lender - uint256 creditPositionId: The id of a credit position to be sold - uint256 amount: The amount of tokens to borrow (in decimals, e.g. 1_000e6 for 1000 aUSDC) - uint256 tenor: The tenor of the loan - uint256 deadline: The maximum timestamp for the transaction to be executed - uint256 maxAPR: The maximum APR the caller is willing to accept - bool exactAmountIn: this flag indicates if the amount argument represents either credit (true) or cash (false) - uint256 collectionId: The collection id. If collectionId is RESERVED_ID, selects the user-defined yield curve - address rateProvider: The rate provider. If collectionId is RESERVED_ID, selects the user-defined yield curve\"}},\"sellCreditMarketOnBehalfOf(((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address),address,address))\":{\"details\":\"When emitting the `SwapData` event, the `recipient` parameter is left out. The reason is that `SwapData` emits only debt/credit recipients, while `SellCreditMarket` emits both and also the cash recipient.\"},\"setCopyLimitOrderConfigs(((uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256)))\":{\"details\":\"Does not erase the user's loan offer and borrow offer To specify \\\"no copy\\\", pass a null CopyLimitOrderConfig except for offsetAPR, since a completely null CopyLimitOrderConfig will default to the curator-defined CopyLimitOrderConfig for that market.\",\"params\":{\"params\":\"SetCopyLimitOrderConfigsParams struct containing the following fields: - CopyLimitOrderConfig copyLoanOfferConfig: The loan offer copy parameters - uint256 minTenor: The minimum tenor of the loan offer to copy (0 means use copy yield curve tenor lower bound) - uint256 maxTenor: The maximum tenor of the loan offer to copy (type(uint256).max means use copy yield curve tenor upper bound) - uint256 minAPR: The minimum APR of the loan offer to copy (0 means use copy yield curve APR lower bound) - uint256 maxAPR: The maximum APR of the loan offer to copy (type(uint256).max means use copy yield curve APR upper bound) - int256 offsetAPR: The offset APR relative to the copied loan offer - CopyLimitOrderConfig copyBorrowOfferConfig: The borrow offer copy parameters - uint256 minTenor: The minimum tenor of the borrow offer to copy (0 means use copy yield curve tenor lower bound) - uint256 maxTenor: The maximum tenor of the borrow offer to copy (type(uint256).max means use copy yield curve tenor upper bound) - uint256 minAPR: The minimum APR of the borrow offer to copy (0 means use copy yield curve APR lower bound) - uint256 maxAPR: The maximum APR of the borrow offer to copy (type(uint256).max means use copy yield curve APR upper bound) - int256 offsetAPR: The offset APR relative to the copied borrow offer\"}},\"setUserConfiguration((uint256,bool,bool,uint256[]))\":{\"details\":\"By default, all created creadit positions are for sale. Users who want to disable the sale of all or specific credit positions can do so by calling this function. By default, all users CR to open a position is crOpening. Users who want to increase their CR opening limit can do so by calling this function. Note: this function was updated in v1.8 to accept a `vault` parameter. Although this function is market-specific, it will change a NonTransferrableRebasingTokenVault state that will be reflected on all markets.\",\"params\":{\"params\":\"SetUserConfigurationParams struct containing the following fields: - address vault: The address of the user vault - uint256 openingLimitBorrowCR: The opening limit borrow collateral ratio, which indicates the maximum CR the borrower is willing to accept after their offer is picked by a lender - bool allCreditPositionsForSaleDisabled: This global flag indicates if all credit positions should be set for sale or not - bool creditPositionIdsForSale: This flag indicates if the creditPositionIds array should be set for sale or not - uint256[] creditPositionIds: The id of the credit positions\"}},\"setVault((address,bool))\":{\"params\":{\"params\":\"SetVaultParams struct containing the following fields: - address vault: The address of the vault to set - bool forfeitOldShares: Whether to forfeit old shares. WARNING: This will reset the user's balance to 0.\"}},\"setVaultOnBehalfOf(((address,bool),address))\":{\"params\":{\"params\":\"SetVaultOnBehalfOfParams struct containing the following fields: - address onBehalfOf: The address of the user to set the vault for - address vault: The address of the vault to set - bool forfeitOldShares: Whether to forfeit old shares. WARNING: This will reset the user's balance to 0.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateConfig((string,uint256))\":{\"details\":\"For `address` parameters, the `value` is converted to `uint160` and then to `address`\",\"params\":{\"params\":\"UpdateConfigParams struct containing the following fields: - string key: The configuration parameter to update - uint256 value: The value to update\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"version()\":{\"returns\":{\"_0\":\"The version of the Size protocol\"}},\"withdraw((address,uint256,address))\":{\"details\":\"This function burns 1:1 Deposit Tokens (e.g. szaUSDC, szETH) in exchange of the withdrawn tokens\",\"params\":{\"params\":\"WithdrawParams struct containing the following fields: - address token: The address of the token to withdraw - uint256 amount: The amount of tokens to withdraw (in decimals, e.g. 1_000e6 for 1000 USDC or 10e18 for 10 WETH) - uint256 to: The recipient of the withdrawal\"}}},\"title\":\"Size\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"buyCreditLimit((uint256,(uint256[],int256[],uint256[])))\":{\"notice\":\"Places a new loan offer in the orderbook\"},\"buyCreditLimitOnBehalfOf(((uint256,(uint256[],int256[],uint256[])),address))\":{\"notice\":\"Same as `buyCreditLimit` but `onBehalfOf`\"},\"buyCreditMarket((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"notice\":\"Obtains credit via lending or buying existing credit\"},\"buyCreditMarketOnBehalfOf(((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address),address,address))\":{\"notice\":\"Same as `buyCreditMarket` but `onBehalfOf`\"},\"claim((uint256))\":{\"notice\":\"Claim the repayment of a loan with accrued interest from the Variable Pool\"},\"collateralRatio(address)\":{\"notice\":\"Get the collateral ratio of a user\"},\"compensateOnBehalfOf(((uint256,uint256,uint256),address))\":{\"notice\":\"Same as `compensate` but `onBehalfOf`\"},\"data()\":{\"notice\":\"Get the data view\"},\"debtTokenAmountToCollateralTokenAmount(uint256)\":{\"notice\":\"Convert debt token amount to collateral token amount\"},\"deposit((address,uint256,address))\":{\"notice\":\"Deposit underlying borrow/collateral tokens to the protocol (e.g. USDC, WETH) Borrow tokens are always deposited into the Aave Variable Pool or User Vault Collateral tokens are deposited into the Size contract\"},\"depositOnBehalfOf(((address,uint256,address),address))\":{\"notice\":\"Same as `deposit` but `onBehalfOf`\"},\"feeConfig()\":{\"notice\":\"Get the fee configuration parameters\"},\"getBorrowOfferAPR(address,uint256,address,uint256)\":{\"notice\":\"Get the APR for a borrow offer in a collection from a rate provider\"},\"getBuyCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"notice\":\"Gets the swap data for buying credit as a market order\"},\"getCreditPosition(uint256)\":{\"notice\":\"Get the details of a credit position\"},\"getDebtPosition(uint256)\":{\"notice\":\"Get the details of a debt position\"},\"getLoanOfferAPR(address,uint256,address,uint256)\":{\"notice\":\"Get the APR for a loan offer in a collection from a rate provider\"},\"getSellCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))\":{\"notice\":\"Returns the swap data for selling credit as a market order\"},\"getUserDefinedBorrowOfferAPR(address,uint256)\":{\"notice\":\"Get the APR for a user-defined borrow offer\"},\"getUserDefinedCopyBorrowOfferConfig(address)\":{\"notice\":\"Get the user copy borrow offer for a given user\"},\"getUserDefinedCopyLoanOfferConfig(address)\":{\"notice\":\"Get the user copy loan offer for a given user\"},\"getUserDefinedLoanOfferAPR(address,uint256)\":{\"notice\":\"Get the APR for a user-defined loan offer\"},\"getUserView(address)\":{\"notice\":\"Get the user view for a given user\"},\"isUserDefinedBorrowOfferNull(address)\":{\"notice\":\"Check if a user-defined borrow offer is null\"},\"isUserDefinedLoanOfferNull(address)\":{\"notice\":\"Check if a user-defined loan offer is null\"},\"liquidate((uint256,uint256,uint256))\":{\"notice\":\"Liquidate a debt position In case of a protifable liquidation, part of the collateral remainder is split between the protocol and the liquidator The split is capped by the crLiquidation parameter (otherwise, the split for overdue loans could be too much) If the loan is overdue, a liquidator is charged from the borrower\"},\"liquidateWithReplacement((uint256,address,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Liquidate a debt position with a replacement borrower\"},\"multicall(bytes[])\":{\"notice\":\"Executes multiple calls in a single transaction\"},\"oracle()\":{\"notice\":\"Get the oracle parameters\"},\"partialRepay((uint256,uint256,address))\":{\"notice\":\"Partial repay a debt position by selecting a specific CreditPosition\"},\"pause()\":{\"notice\":\"Pauses the protocol Only callable by the PAUSER_ROLE\"},\"reinitialize()\":{\"notice\":\"Reinitialize the contract\"},\"repay((uint256,address))\":{\"notice\":\"Repay a debt position by transferring the amount due of borrow tokens to the protocol, which are deposited to the Variable Pool for the lenders to claim Partial repayment are currently unsupported\"},\"riskConfig()\":{\"notice\":\"Get the risk configuration parameters\"},\"selfLiquidate((uint256))\":{\"notice\":\"Self liquidate a credit position that is undercollateralized The lender cancels an amount of debt equivalent to their credit and a percentage of the protocol fees\"},\"selfLiquidateOnBehalfOf(((uint256),address,address))\":{\"notice\":\"Same as `selfLiquidate` but `onBehalfOf`\"},\"sellCreditLimit((uint256,(uint256[],int256[],uint256[])))\":{\"notice\":\"Places a new borrow offer in the orderbook\"},\"sellCreditLimitOnBehalfOf(((uint256,(uint256[],int256[],uint256[])),address))\":{\"notice\":\"Same as `sellCreditLimit` but `onBehalfOf`\"},\"sellCreditMarketOnBehalfOf(((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address),address,address))\":{\"notice\":\"Same as `sellCreditMarket` but `onBehalfOf`\"},\"setCopyLimitOrderConfigs(((uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256)))\":{\"notice\":\"Set the copy limit order configs for a user\"},\"setCopyLimitOrderConfigsOnBehalfOf((((uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256)),address))\":{\"notice\":\"Same as `setCopyLimitOrderConfigs` but `onBehalfOf`\"},\"setUserConfiguration((uint256,bool,bool,uint256[]))\":{\"notice\":\"Set the credit positions for sale\"},\"setUserConfigurationOnBehalfOf(((uint256,bool,bool,uint256[]),address))\":{\"notice\":\"Same as `setUserConfiguration` but `onBehalfOf`\"},\"setVault((address,bool))\":{\"notice\":\"Set the vault for a user\"},\"setVaultOnBehalfOf(((address,bool),address))\":{\"notice\":\"Set the vault for a user on behalf of another user\"},\"unpause()\":{\"notice\":\"Unpauses the protocol Only callable by the UNPAUSER_ROLE\"},\"updateConfig((string,uint256))\":{\"notice\":\"Updates the configuration of the protocol Only callable by the DEFAULT_ADMIN_ROLE\"},\"version()\":{\"notice\":\"Get the version of the Size protocol\"},\"withdraw((address,uint256,address))\":{\"notice\":\"Withdraw underlying borrow/collateral tokens from the protocol (e.g. USDC, WETH) Borrow tokens are always withdrawn from the Aave Variable Pool or User Vault Collateral tokens are withdrawn from the Size contract\"},\"withdrawOnBehalfOf(((address,uint256,address),address))\":{\"notice\":\"Same as `withdraw` but `onBehalfOf`\"}},\"notice\":\"See the documentation in {ISize}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/market/Size.sol\":\"Size\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@solmate/=lib/solmate/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":halmos-helpers-lib/=lib/halmos-helpers-lib/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/auth/=lib/solmate/src/auth/\",\":solmate/mixins/=lib/solmate/src/tokens/\",\":solmate/tokens/=lib/solmate/src/tokens/\",\":solmate/utils/=lib/solmate/src/utils/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20.sol\":{\"keccak256\":\"0xf57d62241e553696a1324d225663ba2e1a51db0a51ca236d0c1b009d89b6284c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d327db93b636790909aa137124f30a856ac1631cb79c476aa188f9627fda8d03\",\"dweb:/ipfs/QmaxpmEoBFioeNYmpxJemyZ7aYF2nX1NKW1XDqREm7i6es\"]},\"lib/aave-v3-core/contracts/interfaces/IAToken.sol\":{\"keccak256\":\"0x4ec2e3180174f248c9308e03fa837d44ca91ca6c1ad67c9951a2951d46948417\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://764b8e56a62c7277efdd6dc29e1ce3f88cb997613a3142a79effa5b3d908a3fa\",\"dweb:/ipfs/QmWAF7rDjyVqkwDR6RGRwYvB3V2fe3T7G1ZSC9UuHjAAZf\"]},\"lib/aave-v3-core/contracts/interfaces/IAaveIncentivesController.sol\":{\"keccak256\":\"0x906b896fdcb878d1472f740a70680f26e9a601dc28701113ab1f89cd9edce0bd\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b17473265a3ec2ec73dac797e0e60c147590f4e5cc7016f8eb61efbe072c49e0\",\"dweb:/ipfs/QmchQGeuyUw3VW4Kgwfg5Ys9ky1F7Q6QCcKbywbRaEUPt7\"]},\"lib/aave-v3-core/contracts/interfaces/IInitializableAToken.sol\":{\"keccak256\":\"0xb7c0da4c50ab10ce00e2325e649297923497738350092f64ef4b259307039dee\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://67af6435a258e6d08151b0c37884475e040c2939c76cfb0ba7afd6264c45be87\",\"dweb:/ipfs/Qmf5wup15foyfWrGvhiZDyasJn9XZFn4Vs14Dui9smeLa3\"]},\"lib/aave-v3-core/contracts/interfaces/IPool.sol\":{\"keccak256\":\"0xbfd2077251c8dc766a56d45f4b03eb07f3441323e79c0f794efea3657a99747f\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c6ff6221de0ea877932c73c0b99d3e4535f293053ae44f9f9d6b9d265e9af2f6\",\"dweb:/ipfs/QmSTaEKrhz1xNVnx4oBzWw8DenYPShVzJoP1A9GTEWkAzX\"]},\"lib/aave-v3-core/contracts/interfaces/IPoolAddressesProvider.sol\":{\"keccak256\":\"0x33d4308d9407b4ee2297fc4ba5acce1a96a6c658189e2778a4f6b90e032fb3b5\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://978336a2a40229ccc7749344be890862ea12e17e9fffe5bb977ba3841de07b5a\",\"dweb:/ipfs/QmScNrQfDSPg1afJmkCty6fZkETUrWTmEXWeTmHoe7mSqa\"]},\"lib/aave-v3-core/contracts/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0x72b3ea433cd3386f369f1643a154bf233ec60c02acd02c32088a97556207d2e4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a5907c61cf65126001feebd94c7a869eff95045106d97e21bf7f0d3de22caf9d\",\"dweb:/ipfs/QmPARkA7YpsBtd1F3JgszZREJk6TAkqRLBkjWZUadCu3sM\"]},\"lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol\":{\"keccak256\":\"0x618fe1876e322a10269e4a96e61e516bbbec883cb79e20b508f8010027178f07\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d2814d57ad47ba13959bf9a108c25374828a370f8d64b5adb7564876927a3a06\",\"dweb:/ipfs/Qmf9xfz7svNZAzgUHUTAj6gVC7SHiT7S4obfo1Sg1Fwzbx\"]},\"lib/aave-v3-core/contracts/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x771cb99fd8519c974f7e12130387c4d9a997a6e8d0ac10e4303b842fe53efa88\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f41689d1d58bc13678c749bae8830f5a8b19b89cd135e962bf07d483350f828\",\"dweb:/ipfs/QmQSNGDxjYGqT1GU2CZzsWUTNcAtcfkg1jDGTH516nCAfN\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x0d4d7d19a052a2ef9d17b28450133631188b895e1755747fa8ad0280aadfb534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838551e10cc07e570b70aee1078e490658d3a0ab8f4adfd4f3f2a565200753da\",\"dweb:/ipfs/QmceT7R3Pqzywyxr3MSEA7VXU4axZAPS6BLy92iV97rGdG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x00c23b80f74717a6765b606001c5c633116020d488ee8f53600685b8200e4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73d0bd5ff47377a97d52149a805d82112f88c9f4ae853ef246a536bd31ce1da\",\"dweb:/ipfs/QmagG3Yup65JQPSMZScubYTCeyuUyvKLxBM3X1er6xWWxf\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7b6690c21e94a45b825631a12581b40a753ea827de5ac9127a6b5833411317f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00045f2c18d7866618c65819fe180a9a9dab25c1974fab35069bdac9cf624b6b\",\"dweb:/ipfs/QmYk62QRqGHJ3rjqfEtbfEGFHWsenv5tNMbeMfq5HkTP44\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5d0c69ef32eae686acc22acfb1a54df9c91356e69adec593aa69eba83ae8f6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7a9fca2cb3d802c4f8a2d0fda84ccc7f880264885801c7df08373501dd22282\",\"dweb:/ipfs/QmdtM2Loz9NzNTuQ3RXNQCPBjoPUJw35Ukpt1MSM9XH3cD\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xecd5f3c702f549fb88555e44e5f2415a4dfd6db09081aec7e98c26b6a3739c06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed40e907a6d80458a0556a609d0d3991d718c20f9f1f21475e5ec739af523231\",\"dweb:/ipfs/QmejkwADsZRxkusNU94sswMJfpLrbq8RkJTbNccUEQpc7Y\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0x4e64844c56061cd90e0a80de73534a9166704c43eed579eb83f90bc2780ce968\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cba4fab5cebdddf644b901994a7f0f52b98885d4c56012f4dc51d52c2bf9de0e\",\"dweb:/ipfs/QmVyyrRmqXrAiapewWunRVgiPVFJHpH2hKiE1py1svMSNV\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol\":{\"keccak256\":\"0xf80abf13fb1fafc127ba4e792f240dd8ea7c8c893978cdfd8439c27fae9a037b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b04fc72a656bbf3631e9c2e67b9870a2d9d235185e833fe050e9606e6816a9aa\",\"dweb:/ipfs/QmUcz4bkEkJ9pwzFu1C3n97hBQ3st9U6qTAqCdyFwddKco\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x44fa2ce1182f6c2f6bead3d1737804bf7e112252ae86e0f2e92f9b8249603f43\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://54154e8665b98d65f5dc91b256551852cb47882180b501b260657122d207c0ea\",\"dweb:/ipfs/QmcfemK1A2PXYrWB5SBFGERpMCderbFRb8BtTzQDj1sUBp\"]},\"lib/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x7825565a4bb2a34a1dc96bbfead755785dfb0df8ef81bd934c43023689685645\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f44f4614d31e3d4864c7eb13620555253b84f6a69180f8745b7c6e246a9d125\",\"dweb:/ipfs/QmfNQUcXj3KL8h9u5PqbtEC6yRtwDbKNb48uMPjdwxsKnd\"]},\"lib/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x5c57de03a91cc2ec8939865dbbcb0197bb6c353b711075eefd8e0fca5e102129\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1e994c24fd891ef8a3f5dbf5eba42b34feaf05e0376a29f91322faa18054449c\",\"dweb:/ipfs/QmNdUJGUQxd1dPkMbnA5f5UNqakxRkQE5r7bTZJAuHeapS\"]},\"lib/v3-periphery/contracts/libraries/OracleLibrary.sol\":{\"keccak256\":\"0xe313f89c69c0f1c91f0722868313b4ceb14479b3e7a0abf52a1b9bbd9c18e81b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8ad09b061f3f533c116618c20cf01510108eebebb7ff8847b0f245b8ba368d53\",\"dweb:/ipfs/QmU6vdi5JjJfjK2KqonWvRg9NeuQWarj4B1YFN22Dh9VJM\"]},\"lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"src/collections/interfaces/ICollectionsManager.sol\":{\"keccak256\":\"0xf36eb32c1cf333628338639e1ffb9cad9cf8996a859a352af8cb6b2b781725a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77af02b46b40c96119a68de47edb7fb86bb040bfef2f0cd9d3b430bd10d34ff9\",\"dweb:/ipfs/QmXgH3jDkSK7EGjSQbgYGq1a8ozneEs4gBfvvoQxGVABHZ\"]},\"src/collections/interfaces/ICollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0x7420c54515b8bd3ae387671d7ebc03cee304bffb68bea11388e6f993654c72be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5228ec9921301a2da45018f00a7dde6a152549cb1f08941e6612f444448baa84\",\"dweb:/ipfs/QmZpmzHiaW5X9TQ9Q7myAzBxpffBKh8Ty58Epj5s82AuMX\"]},\"src/collections/interfaces/ICollectionsManagerUserActions.sol\":{\"keccak256\":\"0x5eeaffedce45f266039fa0c14e150fa9b65cae668073872d362092b70a4bba36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ce96526ff03f209bdc824dc23a87c9270cd4a258c6e809397c21899301a575a\",\"dweb:/ipfs/QmNRFmXMGH3YWLXkqPFeSz9bgKrHBFKvH7yNJYKBS6bW2k\"]},\"src/collections/interfaces/ICollectionsManagerView.sol\":{\"keccak256\":\"0x3802e370d2ba7707f50aae8d85f8d5a5bb3496dc0379b3db3294facd0d75c0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://197a2965fef0b04dc2bc06783ff765af3c585678b348c1e4882e34b0a953d94e\",\"dweb:/ipfs/QmTGmm9i3JbNdGXGspv1pnKLCh9VoPyDM28Fx9XfYJoHrn\"]},\"src/factory/interfaces/ISizeFactory.sol\":{\"keccak256\":\"0x0c7ee30a3e26cab285f78810a3684c8d91ea4d3c839f023b839144ec69d58780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6f58c02477567655a64a0106153a70fd8e20a42c572554c2d8768ec93ee74a5\",\"dweb:/ipfs/QmUZ9aNgjWMVKBk5B4LRwJmSUWZNpDcBsEw3AhYa1UffUV\"]},\"src/factory/interfaces/ISizeFactoryOffchainGetters.sol\":{\"keccak256\":\"0x01193f70622dd06fa303e488c255bf9b86f4fd2150ded107df75eabb1c200403\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81f74325395f6f3c01d55991aa3e8b2e26c3bd8d80b3e061f3c3d90bea81603d\",\"dweb:/ipfs/QmWKW2CQdeYgK1x5L6i9k43wJVYxu9Qy6QUJD5aFoykQ8p\"]},\"src/factory/interfaces/ISizeFactoryV1_7.sol\":{\"keccak256\":\"0x88d8fee7f821de312741e741fcd2867e55905159002ba4d8ced827778bebde29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42df9dfc39ad1b6812bb10c74d1398d3882e207e9611cb2e857187d7c79e09a\",\"dweb:/ipfs/QmTcbh5pZjV2S6zj5x3nzvRJBBsyy5DuNLRD4Dvg5Ydydq\"]},\"src/factory/interfaces/ISizeFactoryV1_8.sol\":{\"keccak256\":\"0xa5581ab63a25a418017ef89e0a381e5876ebd9d3153b190eb06094f20fbda619\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48520aea55bd1d7716d6146c24af0b957c4f8ba310b7595b81bf10c4e1c28578\",\"dweb:/ipfs/QmbUWrZNpYX32r8JJnhpYU8tSS6XqxgjFdtyzNaKxJBfHL\"]},\"src/factory/libraries/Authorization.sol\":{\"keccak256\":\"0xd0759b2d19d649ede38497e36b8569cc49518a8f70927476e0713971306ab304\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79f301289c5908529bcaddcf4e1c18da9625460315462d9eca21192e1d26468d\",\"dweb:/ipfs/QmZZSLLP9hxdAVAqDhrqcdjPFL6evNKMvxEzcWUCfJmAn5\"]},\"src/helpers/ReentrancyGuardUpgradeableWithViewModifier.sol\":{\"keccak256\":\"0x44e0afa8b79734db3eb0278c752f0c74daf37e21b342ef7963ad28cfa6eddef6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c08003c5aaa58665815eba32b562db37d98eee0df1478bde70d3cdea490d02d\",\"dweb:/ipfs/QmQTPFYN7RMHRtBW2StZQX6c1QmK9gZH3msxsDo1makpBz\"]},\"src/market/Size.sol\":{\"keccak256\":\"0xfd7ec5860b9bed4546925e5e82d87d3e889cf4f87c1d8e688b74e18b98e5f3ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acff4528e6ef06b4ae2a0e9c7b047d8007f76d125854ad77f827913f01ffaa5c\",\"dweb:/ipfs/QmRzNKUhpYAzgBWvsm1iGozhyKxXBmjzccaZ4rzGcBAvQm\"]},\"src/market/SizeStorage.sol\":{\"keccak256\":\"0xcbb653a667ff847b25dedcdefd77ceeb73539e58f1d3a3c5e0235f4f7027d7b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de6d2642e9cfcf23e2161d90c9a446f38dad849ed5405a52b6e829a63b45caf9\",\"dweb:/ipfs/QmRY4FeZ7kUQLUx9DYX9vCWmZzAzD95keSCeVZUf7tALHi\"]},\"src/market/SizeView.sol\":{\"keccak256\":\"0x72f41e7b7d9544b68e155351c3c21f56a0273c56e7529a1bee9396f119784030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71a9bc9daf45693598eff3b08e49f404dfc2efa0be4797e5470c22f058ea3718\",\"dweb:/ipfs/QmYgiUwaM1A2SHHsqjcTExtzvaH6sN9B5sru8ZweiJ5Wv4\"]},\"src/market/SizeViewData.sol\":{\"keccak256\":\"0x4fbd20e43987c211e0f8ab6ce467b4d017092a881ad544aa44a5d2f1d555df2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f4ada02248e1224356a5e1b4fce02c60e4f14c414052a09363e9803317eacf\",\"dweb:/ipfs/QmZ69LGdEoZWajqVWiHrDfctYmArkt9ZWMYARwX6htQQ7x\"]},\"src/market/interfaces/IMulticall.sol\":{\"keccak256\":\"0x6e37873de589b4bec14611f36d283ab797d149a2ea61be2d7f3ac32d503dbe41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88a1095d11f66268b50848a9868f28020583e8a4bb0d2885a59624c74e40f989\",\"dweb:/ipfs/QmSDYFNMkdriiJwn1crwmN4GGAsGCAMz89jaw3qAdALF7R\"]},\"src/market/interfaces/ISize.sol\":{\"keccak256\":\"0x124afa7a31aa6495975a98be40feb74591cf32bbe49d532e459b263f9cdc26ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c053783537613a5f7feacfd592aa1bf20f1e179e3585da4ad85e3fc3ca85507\",\"dweb:/ipfs/QmRbd68SUKxMZCuZS1jjnbYy4Q562MNdjxsucFxwT8zBdC\"]},\"src/market/interfaces/ISizeAdmin.sol\":{\"keccak256\":\"0xc4d3eca45501932692e471a063ae044a75c4554f22a074034cf0f5a332a670cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37acd1e3a79f29afcda3ad6bd199f0990054827ba19cc955b825315b3c5f1a95\",\"dweb:/ipfs/QmVs1pD82jrcGZkgYa2o5gkbQHpjhg6ssbQdZTDTu66fT5\"]},\"src/market/interfaces/ISizeView.sol\":{\"keccak256\":\"0xf34e38e63d35d793fa3c56d1bb732617f5e2e56b81f5319448d73ff5de7a0497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9a2cc5be5d3fbbb2bd9a722aedb3bf63cf97dafec3b4941035a5ea5129bc69\",\"dweb:/ipfs/QmNYiFubf2cqMKiwozvJgngMu3frneLsuTNv2xzikdAYw2\"]},\"src/market/interfaces/IWETH.sol\":{\"keccak256\":\"0x4f7e2b2d5033a819263abfafba2aa513dd9a25bb1ce21cfe497daa0ac4a9ec7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e209482985a7a680a0ffc2a6a6e3d0c1fb832db256dc1240c5b054fab19253e\",\"dweb:/ipfs/QmWQC9Qy3Mn9xfvM9xkcru9wcdTgq4jMjiJSbDtSMRfc9t\"]},\"src/market/interfaces/v1.7/ISizeV1_7.sol\":{\"keccak256\":\"0xf6dcf99539326bae7e1465eac7857f1a62d1d148d065510acea1a3f9a7e9d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87776d27879eb9e715f0b56ce5deb97f726b8018df831f2538563c3a8aa743c9\",\"dweb:/ipfs/QmdUwAo4orzYFXSogwjuZqnXGyrA3bZhpMVV4962E8ciSR\"]},\"src/market/interfaces/v1.8/ISizeV1_8.sol\":{\"keccak256\":\"0x539e339de13cfb2778f0b88e0962e72a0953f7ed41306815ba6da72f308ecbff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e5b98cdd5bc9107f4e890fd0c5ea6bfde4b5ffa803c72390a13579f4f81b114\",\"dweb:/ipfs/QmSQ7jXfUbhoScWLPwCkSaerqHxeBWmz6H1VVKtR8rYHhP\"]},\"src/market/interfaces/v1.8/ISizeViewV1_8.sol\":{\"keccak256\":\"0x25ce9dfa84f7a48195568808555684d9027d6b277691918a9269d84075c446de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0af34477c26cdee497c98a91d27fed7125752e7a5ed0a9f540b7f88eaa0b52fc\",\"dweb:/ipfs/QmaJf67ydi3WGc4VCA8TVYaXumRcMEjh2hEjTWNSGGS6mP\"]},\"src/market/libraries/AccountingLibrary.sol\":{\"keccak256\":\"0x7951928ccae855e9fabc380ad88075fee1822e00dadeeb969c5add0e7b1e9a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b895fa756fd379def6e9cb674a9618beeb7e7cc2f9708816cbafe36a56acd769\",\"dweb:/ipfs/QmbAg4HReEqmoJ23JrJpy7Rp2cgZA87VUgMrBFW3yr6Cp8\"]},\"src/market/libraries/Errors.sol\":{\"keccak256\":\"0xed73df3f39ba612c526ea09234b730cfdfa5ed399b279bb738fbfd5696b38bd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c0c78ee291a63f618a99ef99dfd2e6d2ff973f38a2b6fb92001a0a9c6329702\",\"dweb:/ipfs/QmQfuhKVMKebzmFYAN6EEDCWr7PpG884Xbqc6VL5XwVmuM\"]},\"src/market/libraries/Events.sol\":{\"keccak256\":\"0xce181000a07927aa14c59bc6d514b9829386610f4f6e8e987e7b577301707d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfa93b9e1ea3b94e298657b38c8ded2f180296a8054d9593b37695644b075908\",\"dweb:/ipfs/QmZ2kyGivGEo5smxeHZ4BZsFNEuy2WanW6PFbJaLrFcFMo\"]},\"src/market/libraries/LoanLibrary.sol\":{\"keccak256\":\"0x40dcae0ebbfff42282a5ceb00b5698c882242e028740099bc5828a08fa7e77e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efb877878b973bb6e8913cc3c4f4948ca7a43d0036dc243862cc8de7a3e92384\",\"dweb:/ipfs/QmYt8p1H7gAyTExvnKV1Anhfnjk5o774yi4ibHGUxByExv\"]},\"src/market/libraries/Math.sol\":{\"keccak256\":\"0xa270b1631b8b469d0e4bfddfaa0bf87ee285fa7532e1ed31f28674356fce0e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f0d027e9af0e81111d0b573c836502f94f5f0e5a3b5c0fc8ff025060e78bb53\",\"dweb:/ipfs/QmbS7Wnub3nmeo7yfeQht68MzWwMrQ3Ef7bUtiNtDMtXDx\"]},\"src/market/libraries/Multicall.sol\":{\"keccak256\":\"0xaf98fced0f94fce8f0c27d1f5160019eeb17e3eb67316ca245f52c39df257fa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://852c668a4f10a61c2ceba43aac27993869ae591b8479c88d5c71bd4760cab1b6\",\"dweb:/ipfs/Qmer5YE99KsLeSKXf1QLxeDcUcLNgYkjFRwHzvBuG7JtUp\"]},\"src/market/libraries/OfferLibrary.sol\":{\"keccak256\":\"0x55b32a6221d79312c857fa936342e229a74e440197e87603dfda8c57335c9401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9b3e4a528f8360c5ca36d66cfe1d60749613ccb722d1f7af91398bfbf397b9a\",\"dweb:/ipfs/QmRzh239xa5YHMrEWtAt4oCbzFdwNDqDgtz8EGZGiFqZW3\"]},\"src/market/libraries/RiskLibrary.sol\":{\"keccak256\":\"0xc639312f28fb460000aff9c0869ffb2c3bdaab5e6d5aff6895df6bc2d3461b7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4eb18a5f3fc5ecacc2a166e0f5c456246bcff32284d29fa14d819f7616c7718d\",\"dweb:/ipfs/QmR9aSvd6G1qmqTKvT21fHk8EVeKGjKysn34qpCFTXhKXz\"]},\"src/market/libraries/YieldCurveLibrary.sol\":{\"keccak256\":\"0x8d4b1f45d67387169c3b38cc034305eba91ad306dac7021d4658e3b8bbc9a135\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438376203571e01cbb26ea58c192d3036a1e623c0c5897c52aeafaa90e281cd3\",\"dweb:/ipfs/QmcRNJKsudM9bZvCPCSEQWxPHvVEfQD1u2MPf8S33fh3o3\"]},\"src/market/libraries/actions/BuyCreditLimit.sol\":{\"keccak256\":\"0xccb77182ce62b7ea147ee65ad7e32076f9e565a2605c18842087103e471f79f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://571a3265ef2664d9fea268e229af1bc0e430f458efe6898a03532de799d959ef\",\"dweb:/ipfs/QmSA1hphKNeRdqKtKpbfM3yof9TTd13r9X5ei7jNiuhcwQ\"]},\"src/market/libraries/actions/BuyCreditMarket.sol\":{\"keccak256\":\"0x8bc8b7c8c274648d666d0e83e3605f1cbc02b63f283fb72485e32cb2c9fdb1d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dfd2009d13f1cd03d1eff41195c66617b51390d65d7c805c0bd3ef288b9a5925\",\"dweb:/ipfs/QmczwzFqX7vugWArcsLvjzGzCkBsRyyrv5s8nUkq2iAnHx\"]},\"src/market/libraries/actions/Claim.sol\":{\"keccak256\":\"0x0145b5a2bef3cb5b6348c0826a020eaaf8db1880bb7aa2804bf03cc16eaf2adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de61cb5c77a1be1cc00990f8b21e1ad41005c811309244acb314d3e3f2324427\",\"dweb:/ipfs/QmVJJ8RgFXtNg3KLcevf99ZyhXQQtAH32i7MZXM1VLrbyd\"]},\"src/market/libraries/actions/Compensate.sol\":{\"keccak256\":\"0x5fa7ce8b74eeea09d12b78e3b31dbc7b37fca58b235299ad5d9f8e99ea400719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fbeff16ba76d1e3735f4d067ba16da7b0f35176ff9ea501a99f94063936bc5d\",\"dweb:/ipfs/QmYyogfmQmrpEksBc9uSjVQvYAWdaq31pJ3j6aAnc8D1rA\"]},\"src/market/libraries/actions/Deposit.sol\":{\"keccak256\":\"0x75e2039804c341b06705e712a8403350bf3860207178872eba02b12acc1a55e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76f871e1a3b6e9accffffac39be2a51d90cb16028511f0f54597bdb8e8c2c6fe\",\"dweb:/ipfs/QmNzQiqWUiVnqpL9EhyG9tbF36nksZJ3YeT3hNioQLCpwG\"]},\"src/market/libraries/actions/Initialize.sol\":{\"keccak256\":\"0xbad2d5f92aaeee28a87c1feda397f787cf1a2f8432bf05371f79b2309e9858f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c6959ee090add484fe99aa21bb8e879c36a97a1d00b4d49dfade775c4813a63\",\"dweb:/ipfs/QmZycV28jdCXWHy7QV7uqtqxaiReZaTYtvvgECuHb3gwJQ\"]},\"src/market/libraries/actions/Liquidate.sol\":{\"keccak256\":\"0x20e7ccfb443548a7325a592034bcfb6f474c313f9cf0453fafc45777a280d85f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec7a9075a20c68b7ca70c6b283692724d2e42faf0596187bd1075d8d7b6c03b1\",\"dweb:/ipfs/QmbHMZ2EmbhY4w51vWUkuEvr2r8XEkJkYvM56Tk5h1yr9G\"]},\"src/market/libraries/actions/LiquidateWithReplacement.sol\":{\"keccak256\":\"0xbf8028638ffc6a29e6b93a8f795ddbdfb5cb119c95c8c7bc0c446b3681514fca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f4db7ddad5d0e210fd133073ec80d63bdc7a6026ff74744fdc4aa83918b1230\",\"dweb:/ipfs/QmXSYimeiJRTx4sdBKZsPdY4HSDhK7gbsjB3bm596j7oT5\"]},\"src/market/libraries/actions/PartialRepay.sol\":{\"keccak256\":\"0xcca168dab87cf6c5a383340443041194ea3ca272aa48cdbe7ffcb263be767900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd4a81eeab2fbb3ac34e21fdfe3acf4cbae5802984ddd0eabcc4b5dcf5b80315\",\"dweb:/ipfs/QmVZ9wKB1vjGghXfCE3AFNGTiGLekqbLEELSdJ26eeXy3F\"]},\"src/market/libraries/actions/Repay.sol\":{\"keccak256\":\"0x8ce3d2f0cf14efb0489f509f244c05d8045ea5eecffceb2d932321d4f62a5474\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://773030fd26b7cd147d3c1c745a858e541dee98331c362de19e7c7f021be7c44e\",\"dweb:/ipfs/QmZ8Du3qDSdpM64JCD6PqfqQ4DtpcfaVX6ujiCEJhgUhX5\"]},\"src/market/libraries/actions/SelfLiquidate.sol\":{\"keccak256\":\"0x2d71cff942efc93fb7aa3a0a636e44562e0fa44ba4d503f323c6d08e7fdd8af3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdc43c74a42cffbf3844939df1d21a2b392ad3596ece8f1e9a6ebe08c2ec64be\",\"dweb:/ipfs/QmRUScCkvE4EADEUEvdwrsnzfLsq7xjFt1xsSZ4PZfs6J7\"]},\"src/market/libraries/actions/SellCreditLimit.sol\":{\"keccak256\":\"0xe8fe9ab69faccffa8539167973d13c5afe04ca8358316a092540171d084654b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c626cb1ad9347b0eabd162f590c61175cdc687958bc6684843201713c5efa89\",\"dweb:/ipfs/QmNqZc3Zh2Nvj6exvG89XShBY4WtBJSh6iKWr7gZB8sQ3k\"]},\"src/market/libraries/actions/SellCreditMarket.sol\":{\"keccak256\":\"0xf4bd799bb7cf51c565d530ff42cebf0a3b1d2b01a783f484c3ffda112eca962d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7d0d213d6c00b09f7508887541968939a960a86160f6812143bff9c07ecf86\",\"dweb:/ipfs/QmRafSq5sVAsmpttMGWM1FJJz9Gg1bTrVthP6k2Jppe9gr\"]},\"src/market/libraries/actions/SetCopyLimitOrderConfigs.sol\":{\"keccak256\":\"0x8f6f00418e9f62d99e316097724d50ae10369fc9049b1c5caff7d219410cc79e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36222343f8752b105bd7414e53281f30cdd1aa3ca45539dcfb5fe22d6eb5fdde\",\"dweb:/ipfs/QmRCpmVtGTXnRUUR5wPGjW1oSPg8PRcP39Sigfyt4YkXyG\"]},\"src/market/libraries/actions/SetUserConfiguration.sol\":{\"keccak256\":\"0x914026fea966b75688fe25a3ac2782a426134ebceb3f1b1719e650f2317dd04e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb5a25ca819ecf4137af74c23829aaf2d784b868e710f4b563378481426dd4a\",\"dweb:/ipfs/QmUTdYB2zr3gDaJ9Qj8ma8RypzdKDAeKWj1UwCS8MmnRrP\"]},\"src/market/libraries/actions/SetVault.sol\":{\"keccak256\":\"0xa9fd4994702f7dc36369fbfb3f7a3ed767b36619bf28471d7d7098aabca62dab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7eb78f54189a5ab0247264303eea0e576d9aa8a1ea3d81e3e4aefe1baef13a0\",\"dweb:/ipfs/Qmf7DVjjGGRDC4UY1tzLztwG6pEsutWGxiZ2ve1czCE93S\"]},\"src/market/libraries/actions/UpdateConfig.sol\":{\"keccak256\":\"0x040b1b2b4dfb446b50bce809c070a3b977e7c614f2bfdf632b10f9c89ec8d80e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://067a98624ca328a30debcd8d09adb675ad3ebeafe0829269ca5f42574babcca3\",\"dweb:/ipfs/QmU3K7oJnmknBtCyVNR6d2fLsUFCPvozr1DvY9W42cw1Eu\"]},\"src/market/libraries/actions/Withdraw.sol\":{\"keccak256\":\"0x1c0692507acd9052c4831b4a78fd6a7d54b7ab9743bf49e170441abdd5694247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1de43235c6ac35a2a752173ab67346feb750948d2091efd20053f051d7baa9\",\"dweb:/ipfs/QmXtbxAzykvnBSRuDWSFYybL6V7pqGwhjCGhkKQhSeb59i\"]},\"src/market/token/NonTransferrableRebasingTokenVault.sol\":{\"keccak256\":\"0x9178cafae5e58ebdaa1121fc7548514fc2e2b847ff1b375e42a968bef415ab30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c46fe4fccc7608958715b333f3ef8c3ec4a571c30ddb4650ac4651ff55357745\",\"dweb:/ipfs/QmUBKJwNUacfmRG6p6PFYQssKf6gCCt7dvmqDbnL3KsT7g\"]},\"src/market/token/NonTransferrableToken.sol\":{\"keccak256\":\"0xf82118604ddbcd5d9ff708d739396e993d9621cff7b07f22a519141ca39a9e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f371fb37a2ac76630302b1284d62e8657f038b504ce9884723574c2a3de32ec\",\"dweb:/ipfs/QmRsjmBirftC8Jih4jBG2BoJmpe4RRAAsEwsmtLjWicTVf\"]},\"src/market/token/adapters/IAaveAdapter.sol\":{\"keccak256\":\"0xd88333fa5a565a78d2fbdf408f2ff89b69f900bd13ae84e1b102f1a1527c1777\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1890c9632e9fa607c74524da6049080fe42bde8fdc6117136e12e2277dbac02e\",\"dweb:/ipfs/QmSD6udpnnRsXoqk6yHxjKpDxiQgmoxQTj3CoXrP64bxKd\"]},\"src/market/token/adapters/IAdapter.sol\":{\"keccak256\":\"0x579f476cae67f70982f6d158f90490ccacb37c88d4c9e4318ccee9be0d3ff692\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80e9fc7d1fa0dfa85846e80a7ba766c68a39310c604d326f547f9278c2943574\",\"dweb:/ipfs/QmS1fNU7hrH21a2ZusfxMqaQvtzAgbdJkcbfw8ps3QB5oQ\"]},\"src/oracle/IPriceFeed.sol\":{\"keccak256\":\"0x7ec983afe56cc8eee5d4b3573a51665ad0cfc8835f8fb8fd864b2a5a119f9a90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fc706986c7c132d4b0b95ec2f7b3aa49def6511ebe84643ee1359b2318da48\",\"dweb:/ipfs/QmQCwub8SCenVvQnVtL24Eny3jNZrugoxKsu86da55nBKJ\"]},\"src/oracle/adapters/ChainlinkPriceFeed.sol\":{\"keccak256\":\"0x71a4ccb7d9469f4d7a914a81c754b1278152a387f8154e0f9793e0e3d010a599\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d953653f6481b344d0d00a677a8301f3006a50c3b90744c39cd3eda6f508818b\",\"dweb:/ipfs/QmYR1RvdMboMpH9ykJN5WwuC3AabSvPS2JA4t4afxa7gyh\"]},\"src/oracle/adapters/ChainlinkSequencerUptimeFeed.sol\":{\"keccak256\":\"0x3d200d7fcc7c457a201f2bb32a0b68ea13b2b697cb300bbd587828bff5ffe8b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d72923e346e73eb0d42d055437dc6df059c3a8f27b08ff5aacd7cf7fdf90eec5\",\"dweb:/ipfs/QmPYENtSCwseMxYtQeKAkVe8DuCJYzRGpFRxDgw85xf2g8\"]},\"src/oracle/adapters/UniswapV3PriceFeed.sol\":{\"keccak256\":\"0x84027f9673163df8f7dcbd7c828cf5bada6a9c7de1986d3821ec75004a11f639\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0caf13ef11f4ad681f395ee48145d72fcd3a1eae5b439efb132be9cccd8f1243\",\"dweb:/ipfs/QmdrnR1auzKaQhZ7AqWRKHnajw1Y6oLmdNFYJzKLzb5E72\"]},\"src/oracle/v1.5.1/PriceFeed.sol\":{\"keccak256\":\"0x36473f98f23968eaab386e44c1404652c7ef88c09db9772ab3195d8305829762\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5db471c144f3a43e9e07391890e7b29e39b64ae3fb0e73b66dd313801b03542a\",\"dweb:/ipfs/Qmf5GMB6SdKNCUPCbV4nYmxUjg6z3iKiweYU2ajY9BrGbC\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.23+commit.f704f362" }, "language": "Solidity", @@ -2931,31 +2889,6 @@ "name": "Upgraded", "anonymous": false }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": true - }, - { - "internalType": "uint128", - "name": "oldBorrowRate", - "type": "uint128", - "indexed": false - }, - { - "internalType": "uint128", - "name": "newBorrowRate", - "type": "uint128", - "indexed": false - } - ], - "type": "event", - "name": "VariablePoolBorrowRateUpdated", - "anonymous": false - }, { "inputs": [], "stateMutability": "view", @@ -3727,16 +3660,6 @@ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getPositionsCount", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ] - }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } @@ -4254,15 +4177,20 @@ }, { "inputs": [ - { - "internalType": "uint256", - "name": "debtPositionId", - "type": "uint256" - } + { "internalType": "address", "name": "user", "type": "address" } + ], + "stateMutability": "view", + "type": "function", + "name": "isUserDefinedBorrowOfferNull", + "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] + }, + { + "inputs": [ + { "internalType": "address", "name": "user", "type": "address" } ], "stateMutability": "view", "type": "function", - "name": "isDebtPositionLiquidatable", + "name": "isUserDefinedLoanOfferNull", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] }, { @@ -5073,18 +5001,6 @@ "type": "function", "name": "setUserConfigurationOnBehalfOf" }, - { - "inputs": [ - { - "internalType": "uint128", - "name": "borrowRate", - "type": "uint128" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setVariablePoolBorrowRate" - }, { "inputs": [ { @@ -5357,11 +5273,6 @@ }, "returns": { "_0": "apr The APR" } }, - "getPositionsCount()": { - "returns": { - "_0": "The count of debt positions and credit positions" - } - }, "getRoleAdmin(bytes32)": { "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." }, @@ -5405,10 +5316,16 @@ "hasRole(bytes32,address)": { "details": "Returns `true` if `account` has been granted `role`." }, - "isDebtPositionLiquidatable(uint256)": { - "params": { "debtPositionId": "The ID of the debt position" }, + "isUserDefinedBorrowOfferNull(address)": { + "params": { "user": "The address of the user" }, + "returns": { + "_0": "True if the user-defined borrow offer is null, false otherwise" + } + }, + "isUserDefinedLoanOfferNull(address)": { + "params": { "user": "The address of the user" }, "returns": { - "_0": "True if the debt position is liquidatable, false otherwise" + "_0": "True if the user-defined loan offer is null, false otherwise" } }, "liquidate((uint256,uint256,uint256))": { @@ -5498,10 +5415,6 @@ "params": "SetUserConfigurationParams struct containing the following fields: - address vault: The address of the user vault - uint256 openingLimitBorrowCR: The opening limit borrow collateral ratio, which indicates the maximum CR the borrower is willing to accept after their offer is picked by a lender - bool allCreditPositionsForSaleDisabled: This global flag indicates if all credit positions should be set for sale or not - bool creditPositionIdsForSale: This flag indicates if the creditPositionIds array should be set for sale or not - uint256[] creditPositionIds: The id of the credit positions" } }, - "setVariablePoolBorrowRate(uint128)": { - "details": "The variable pool borrow rate cannot be used if the variablePoolBorrowRateStaleRateInterval is set to zero", - "params": { "borrowRate": "The new borrow rate" } - }, "setVault((address,bool))": { "params": { "params": "SetVaultParams struct containing the following fields: - address vault: The address of the vault to set - bool forfeitOldShares: Whether to forfeit old shares. WARNING: This will reset the user's balance to 0." @@ -5587,9 +5500,6 @@ "getLoanOfferAPR(address,uint256,address,uint256)": { "notice": "Get the APR for a loan offer in a collection from a rate provider" }, - "getPositionsCount()": { - "notice": "Get the count of debt and credit positions" - }, "getSellCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))": { "notice": "Returns the swap data for selling credit as a market order" }, @@ -5608,8 +5518,11 @@ "getUserView(address)": { "notice": "Get the user view for a given user" }, - "isDebtPositionLiquidatable(uint256)": { - "notice": "Check if a debt position is liquidatable" + "isUserDefinedBorrowOfferNull(address)": { + "notice": "Check if a user-defined borrow offer is null" + }, + "isUserDefinedLoanOfferNull(address)": { + "notice": "Check if a user-defined loan offer is null" }, "liquidate((uint256,uint256,uint256))": { "notice": "Liquidate a debt position In case of a protifable liquidation, part of the collateral remainder is split between the protocol and the liquidator The split is capped by the crLiquidation parameter (otherwise, the split for overdue loans could be too much) If the loan is overdue, a liquidator is charged from the borrower" @@ -5659,9 +5572,6 @@ "setUserConfigurationOnBehalfOf(((uint256,bool,bool,uint256[]),address))": { "notice": "Same as `setUserConfiguration` but `onBehalfOf`" }, - "setVariablePoolBorrowRate(uint128)": { - "notice": "Sets the variable borrow rate Only callable by the BORROW_RATE_UPDATER_ROLE" - }, "setVault((address,bool))": { "notice": "Set the vault for a user" }, "setVaultOnBehalfOf(((address,bool),address))": { "notice": "Set the vault for a user on behalf of another user" @@ -5713,6 +5623,7 @@ "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/halmos-cheatcodes/src/", + "halmos-helpers-lib/=lib/halmos-helpers-lib/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/", @@ -6250,26 +6161,26 @@ "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerCuratorActions.sol": { - "keccak256": "0x6708ad93239594105c63f7da068a6ec32ce1758b997d797ac9a33ad0f4a0d201", + "keccak256": "0x7420c54515b8bd3ae387671d7ebc03cee304bffb68bea11388e6f993654c72be", "urls": [ - "bzz-raw://bdbb974f4a3de9d48c5f464ffc8dff0b4fab51b4eb0095084df035eddc46e645", - "dweb:/ipfs/Qma52cMxmWqBrve2ZWhoPfTbkHriAWLtr3rfJrYe4hk9GL" + "bzz-raw://5228ec9921301a2da45018f00a7dde6a152549cb1f08941e6612f444448baa84", + "dweb:/ipfs/QmZpmzHiaW5X9TQ9Q7myAzBxpffBKh8Ty58Epj5s82AuMX" ], "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerUserActions.sol": { - "keccak256": "0x552b44f8d5735c65ecf42884d51257087bbfcd2c3feccf1f63fa5adc53984ff8", + "keccak256": "0x5eeaffedce45f266039fa0c14e150fa9b65cae668073872d362092b70a4bba36", "urls": [ - "bzz-raw://66e4ec097f1e67e2c36117eaff4bb5de858a6f08c7dccacf25453df673eccde9", - "dweb:/ipfs/Qmdmw2dJzKFdBmATxhtCAsLqHN7igEmVQGTBuonRXHm5K9" + "bzz-raw://5ce96526ff03f209bdc824dc23a87c9270cd4a258c6e809397c21899301a575a", + "dweb:/ipfs/QmNRFmXMGH3YWLXkqPFeSz9bgKrHBFKvH7yNJYKBS6bW2k" ], "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerView.sol": { - "keccak256": "0x3122f5f96caf4125f5841e2c38339ef3589d956c44bdf3028a0f083fc8719dce", + "keccak256": "0x3802e370d2ba7707f50aae8d85f8d5a5bb3496dc0379b3db3294facd0d75c0f5", "urls": [ - "bzz-raw://4d6fe2a9b4f75c2a0bab02559c1e298f75154a91706595a3988f72ae893c09d8", - "dweb:/ipfs/QmaKAc7aR4nvwtbBy5U6kxDF9zHeisEYVfeHxzMcuLy6py" + "bzz-raw://197a2965fef0b04dc2bc06783ff765af3c585678b348c1e4882e34b0a953d94e", + "dweb:/ipfs/QmTGmm9i3JbNdGXGspv1pnKLCh9VoPyDM28Fx9XfYJoHrn" ], "license": "MIT" }, @@ -6298,10 +6209,10 @@ "license": "MIT" }, "src/factory/interfaces/ISizeFactoryV1_8.sol": { - "keccak256": "0x091167e33623c408b45abff264938404b8faf35c81601f8946e7b97ba1f50a3e", + "keccak256": "0xa5581ab63a25a418017ef89e0a381e5876ebd9d3153b190eb06094f20fbda619", "urls": [ - "bzz-raw://222eaf2047375c90123f02884ca4cf84c0b354389da4c607abdbefa325bc343e", - "dweb:/ipfs/QmWmMeKpSEeMjEBBaTSPAPWVZJeqPyRutk2tj7GD6ZXwS4" + "bzz-raw://48520aea55bd1d7716d6146c24af0b957c4f8ba310b7595b81bf10c4e1c28578", + "dweb:/ipfs/QmbUWrZNpYX32r8JJnhpYU8tSS6XqxgjFdtyzNaKxJBfHL" ], "license": "MIT" }, @@ -6322,10 +6233,10 @@ "license": "MIT" }, "src/market/Size.sol": { - "keccak256": "0xc0514933bc7e3bc946eb49a6437c31496bd3efc782d33f0facaaa29d52717e26", + "keccak256": "0xfd7ec5860b9bed4546925e5e82d87d3e889cf4f87c1d8e688b74e18b98e5f3ac", "urls": [ - "bzz-raw://7267656c00c12b7ebc01eebdacb1983deebac408f9d3823622a41e4d73ba630a", - "dweb:/ipfs/QmdbVGrRnxLwHMuwWcTARYrDsaYkYiZWN1UX3sZG3KXBfo" + "bzz-raw://acff4528e6ef06b4ae2a0e9c7b047d8007f76d125854ad77f827913f01ffaa5c", + "dweb:/ipfs/QmRzNKUhpYAzgBWvsm1iGozhyKxXBmjzccaZ4rzGcBAvQm" ], "license": "MIT" }, @@ -6338,10 +6249,10 @@ "license": "MIT" }, "src/market/SizeView.sol": { - "keccak256": "0x9378ba3acccaa95f2c22b65407770d7b94ec002d7d6c52f6036abc6adf424c22", + "keccak256": "0x72f41e7b7d9544b68e155351c3c21f56a0273c56e7529a1bee9396f119784030", "urls": [ - "bzz-raw://02de9ce70f3d3c3087aaac619e4469c4d40a352558ca8d52c12626be922e633e", - "dweb:/ipfs/QmNfSrAfBtSZA93McLSiUXXvnp2yV8NEMsf88DfiQrxWuJ" + "bzz-raw://71a9bc9daf45693598eff3b08e49f404dfc2efa0be4797e5470c22f058ea3718", + "dweb:/ipfs/QmYgiUwaM1A2SHHsqjcTExtzvaH6sN9B5sru8ZweiJ5Wv4" ], "license": "MIT" }, @@ -6362,26 +6273,26 @@ "license": "MIT" }, "src/market/interfaces/ISize.sol": { - "keccak256": "0x1e6e27921076b80ac11d39898f986d4ba68efc43b1a56ce7a47ad620774beb0c", + "keccak256": "0x124afa7a31aa6495975a98be40feb74591cf32bbe49d532e459b263f9cdc26ea", "urls": [ - "bzz-raw://c3c9200b7136891144e42186773d0f967d09ac4ef96104f679530621791d8282", - "dweb:/ipfs/QmVeU8h4rUykppSz6rNjmnotPRwBUSVphNnkfQAwqkV7yT" + "bzz-raw://4c053783537613a5f7feacfd592aa1bf20f1e179e3585da4ad85e3fc3ca85507", + "dweb:/ipfs/QmRbd68SUKxMZCuZS1jjnbYy4Q562MNdjxsucFxwT8zBdC" ], "license": "MIT" }, "src/market/interfaces/ISizeAdmin.sol": { - "keccak256": "0x1f2fda9cf43a960e920186ce0414d596f0c73e20e0ab262a047ffcab5b8a4a9c", + "keccak256": "0xc4d3eca45501932692e471a063ae044a75c4554f22a074034cf0f5a332a670cc", "urls": [ - "bzz-raw://092faa4adc6268f096580faebcf426c87def65e02525abfecd04aa1acfceaa88", - "dweb:/ipfs/QmWtjocrjvMRqKH47XiP7GKPRPKPCX3ApnpgpFjt3X9eRf" + "bzz-raw://37acd1e3a79f29afcda3ad6bd199f0990054827ba19cc955b825315b3c5f1a95", + "dweb:/ipfs/QmVs1pD82jrcGZkgYa2o5gkbQHpjhg6ssbQdZTDTu66fT5" ], "license": "MIT" }, "src/market/interfaces/ISizeView.sol": { - "keccak256": "0xf0df7ab138a3bbe12ae09fc44d9507ab66865e30a2ddcf4734cc3f373bdc314b", + "keccak256": "0xf34e38e63d35d793fa3c56d1bb732617f5e2e56b81f5319448d73ff5de7a0497", "urls": [ - "bzz-raw://03922dee9f2f895d627a74162752b40df160d1aefa766067583cff055ce8b793", - "dweb:/ipfs/QmTfCg5Bh4y4vwGEv5smTWjPrsrsBLizJ3xSbZqejgvW7Q" + "bzz-raw://2c9a2cc5be5d3fbbb2bd9a722aedb3bf63cf97dafec3b4941035a5ea5129bc69", + "dweb:/ipfs/QmNYiFubf2cqMKiwozvJgngMu3frneLsuTNv2xzikdAYw2" ], "license": "MIT" }, @@ -6410,10 +6321,10 @@ "license": "MIT" }, "src/market/interfaces/v1.8/ISizeViewV1_8.sol": { - "keccak256": "0xd44b700b471fcdd6dab74676eca4a3d2ab7435c478cdc83c09ff3426c3eec9b1", + "keccak256": "0x25ce9dfa84f7a48195568808555684d9027d6b277691918a9269d84075c446de", "urls": [ - "bzz-raw://440c6ab93d7bf25b47885feb522e0f71963a2bb3247ba820c0f5ce6c3274feb7", - "dweb:/ipfs/QmV4cAiAb16rMZeKWqtDe69Z9NKWHcuxvGJ6pqxbBa9GUu" + "bzz-raw://0af34477c26cdee497c98a91d27fed7125752e7a5ed0a9f540b7f88eaa0b52fc", + "dweb:/ipfs/QmaJf67ydi3WGc4VCA8TVYaXumRcMEjh2hEjTWNSGGS6mP" ], "license": "MIT" }, @@ -6634,10 +6545,10 @@ "license": "MIT" }, "src/market/token/NonTransferrableRebasingTokenVault.sol": { - "keccak256": "0x9270ebc18028e353a18b58b3cc51c90529d18c7ac04b579e84df31f48ad883bd", + "keccak256": "0x9178cafae5e58ebdaa1121fc7548514fc2e2b847ff1b375e42a968bef415ab30", "urls": [ - "bzz-raw://bffde31cb27e6f25019588e4807879de70b3cecb934c03b92a5cd663da153da4", - "dweb:/ipfs/QmXHCi4Ggucp2Q4EAhFgrwi616WB993Ha82uw9bzyUM5Na" + "bzz-raw://c46fe4fccc7608958715b333f3ef8c3ec4a571c30ddb4650ac4651ff55357745", + "dweb:/ipfs/QmUBKJwNUacfmRG6p6PFYQssKf6gCCt7dvmqDbnL3KsT7g" ], "license": "MIT" }, @@ -6708,14292 +6619,5 @@ }, "version": 1 }, - "storageLayout": { - "storage": [ - { - "astId": 111217, - "contract": "src/market/Size.sol:Size", - "label": "state", - "offset": 0, - "slot": "0", - "type": "t_struct(State)111213_storage" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_array(t_int256)dyn_storage": { - "encoding": "dynamic_array", - "label": "int256[]", - "numberOfBytes": "32", - "base": "t_int256" - }, - "t_array(t_uint256)dyn_storage": { - "encoding": "dynamic_array", - "label": "uint256[]", - "numberOfBytes": "32", - "base": "t_uint256" - }, - "t_bool": { - "encoding": "inplace", - "label": "bool", - "numberOfBytes": "1" - }, - "t_contract(IERC20Metadata)58402": { - "encoding": "inplace", - "label": "contract IERC20Metadata", - "numberOfBytes": "20" - }, - "t_contract(IPool)6319": { - "encoding": "inplace", - "label": "contract IPool", - "numberOfBytes": "20" - }, - "t_contract(IPriceFeed)125283": { - "encoding": "inplace", - "label": "contract IPriceFeed", - "numberOfBytes": "20" - }, - "t_contract(ISizeFactory)109242": { - "encoding": "inplace", - "label": "contract ISizeFactory", - "numberOfBytes": "20" - }, - "t_contract(IWETH)112087": { - "encoding": "inplace", - "label": "contract IWETH", - "numberOfBytes": "20" - }, - "t_contract(NonTransferrableRebasingTokenVault)123743": { - "encoding": "inplace", - "label": "contract NonTransferrableRebasingTokenVault", - "numberOfBytes": "20" - }, - "t_contract(NonTransferrableToken)123913": { - "encoding": "inplace", - "label": "contract NonTransferrableToken", - "numberOfBytes": "20" - }, - "t_int256": { - "encoding": "inplace", - "label": "int256", - "numberOfBytes": "32" - }, - "t_mapping(t_address,t_struct(User)111102_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct User)", - "numberOfBytes": "32", - "value": "t_struct(User)111102_storage" - }, - "t_mapping(t_address,t_struct(UserCopyLimitOrderConfigs)111111_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct UserCopyLimitOrderConfigs)", - "numberOfBytes": "32", - "value": "t_struct(UserCopyLimitOrderConfigs)111111_storage" - }, - "t_mapping(t_uint256,t_struct(CreditPosition)113979_storage)": { - "encoding": "mapping", - "key": "t_uint256", - "label": "mapping(uint256 => struct CreditPosition)", - "numberOfBytes": "32", - "value": "t_struct(CreditPosition)113979_storage" - }, - "t_mapping(t_uint256,t_struct(DebtPosition)113970_storage)": { - "encoding": "mapping", - "key": "t_uint256", - "label": "mapping(uint256 => struct DebtPosition)", - "numberOfBytes": "32", - "value": "t_struct(DebtPosition)113970_storage" - }, - "t_struct(CopyLimitOrderConfig)114594_storage": { - "encoding": "inplace", - "label": "struct CopyLimitOrderConfig", - "numberOfBytes": "160", - "members": [ - { - "astId": 114585, - "contract": "src/market/Size.sol:Size", - "label": "minTenor", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 114587, - "contract": "src/market/Size.sol:Size", - "label": "maxTenor", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 114589, - "contract": "src/market/Size.sol:Size", - "label": "minAPR", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 114591, - "contract": "src/market/Size.sol:Size", - "label": "maxAPR", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 114593, - "contract": "src/market/Size.sol:Size", - "label": "offsetAPR", - "offset": 0, - "slot": "4", - "type": "t_int256" - } - ] - }, - "t_struct(CreditPosition)113979_storage": { - "encoding": "inplace", - "label": "struct CreditPosition", - "numberOfBytes": "96", - "members": [ - { - "astId": 113972, - "contract": "src/market/Size.sol:Size", - "label": "lender", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 113974, - "contract": "src/market/Size.sol:Size", - "label": "forSale", - "offset": 20, - "slot": "0", - "type": "t_bool" - }, - { - "astId": 113976, - "contract": "src/market/Size.sol:Size", - "label": "credit", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 113978, - "contract": "src/market/Size.sol:Size", - "label": "debtPositionId", - "offset": 0, - "slot": "2", - "type": "t_uint256" - } - ] - }, - "t_struct(Data)111200_storage": { - "encoding": "inplace", - "label": "struct Data", - "numberOfBytes": "480", - "members": [ - { - "astId": 111152, - "contract": "src/market/Size.sol:Size", - "label": "users", - "offset": 0, - "slot": "0", - "type": "t_mapping(t_address,t_struct(User)111102_storage)" - }, - { - "astId": 111157, - "contract": "src/market/Size.sol:Size", - "label": "debtPositions", - "offset": 0, - "slot": "1", - "type": "t_mapping(t_uint256,t_struct(DebtPosition)113970_storage)" - }, - { - "astId": 111162, - "contract": "src/market/Size.sol:Size", - "label": "creditPositions", - "offset": 0, - "slot": "2", - "type": "t_mapping(t_uint256,t_struct(CreditPosition)113979_storage)" - }, - { - "astId": 111164, - "contract": "src/market/Size.sol:Size", - "label": "nextDebtPositionId", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 111166, - "contract": "src/market/Size.sol:Size", - "label": "nextCreditPositionId", - "offset": 0, - "slot": "4", - "type": "t_uint256" - }, - { - "astId": 111169, - "contract": "src/market/Size.sol:Size", - "label": "weth", - "offset": 0, - "slot": "5", - "type": "t_contract(IWETH)112087" - }, - { - "astId": 111172, - "contract": "src/market/Size.sol:Size", - "label": "underlyingCollateralToken", - "offset": 0, - "slot": "6", - "type": "t_contract(IERC20Metadata)58402" - }, - { - "astId": 111175, - "contract": "src/market/Size.sol:Size", - "label": "underlyingBorrowToken", - "offset": 0, - "slot": "7", - "type": "t_contract(IERC20Metadata)58402" - }, - { - "astId": 111178, - "contract": "src/market/Size.sol:Size", - "label": "collateralToken", - "offset": 0, - "slot": "8", - "type": "t_contract(NonTransferrableToken)123913" - }, - { - "astId": 111180, - "contract": "src/market/Size.sol:Size", - "label": "___deprecated_borrowATokenV1_2", - "offset": 0, - "slot": "9", - "type": "t_address" - }, - { - "astId": 111183, - "contract": "src/market/Size.sol:Size", - "label": "debtToken", - "offset": 0, - "slot": "10", - "type": "t_contract(NonTransferrableToken)123913" - }, - { - "astId": 111186, - "contract": "src/market/Size.sol:Size", - "label": "variablePool", - "offset": 0, - "slot": "11", - "type": "t_contract(IPool)6319" - }, - { - "astId": 111188, - "contract": "src/market/Size.sol:Size", - "label": "___deprecated_isMulticall", - "offset": 20, - "slot": "11", - "type": "t_bool" - }, - { - "astId": 111191, - "contract": "src/market/Size.sol:Size", - "label": "borrowTokenVault", - "offset": 0, - "slot": "12", - "type": "t_contract(NonTransferrableRebasingTokenVault)123743" - }, - { - "astId": 111196, - "contract": "src/market/Size.sol:Size", - "label": "usersCopyLimitOrderConfigs", - "offset": 0, - "slot": "13", - "type": "t_mapping(t_address,t_struct(UserCopyLimitOrderConfigs)111111_storage)" - }, - { - "astId": 111199, - "contract": "src/market/Size.sol:Size", - "label": "sizeFactory", - "offset": 0, - "slot": "14", - "type": "t_contract(ISizeFactory)109242" - } - ] - }, - "t_struct(DebtPosition)113970_storage": { - "encoding": "inplace", - "label": "struct DebtPosition", - "numberOfBytes": "128", - "members": [ - { - "astId": 113963, - "contract": "src/market/Size.sol:Size", - "label": "borrower", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 113965, - "contract": "src/market/Size.sol:Size", - "label": "futureValue", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 113967, - "contract": "src/market/Size.sol:Size", - "label": "dueDate", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 113969, - "contract": "src/market/Size.sol:Size", - "label": "liquidityIndexAtRepayment", - "offset": 0, - "slot": "3", - "type": "t_uint256" - } - ] - }, - "t_struct(FeeConfig)111124_storage": { - "encoding": "inplace", - "label": "struct FeeConfig", - "numberOfBytes": "192", - "members": [ - { - "astId": 111113, - "contract": "src/market/Size.sol:Size", - "label": "swapFeeAPR", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 111115, - "contract": "src/market/Size.sol:Size", - "label": "fragmentationFee", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 111117, - "contract": "src/market/Size.sol:Size", - "label": "liquidationRewardPercent", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 111119, - "contract": "src/market/Size.sol:Size", - "label": "overdueCollateralProtocolPercent", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 111121, - "contract": "src/market/Size.sol:Size", - "label": "collateralProtocolPercent", - "offset": 0, - "slot": "4", - "type": "t_uint256" - }, - { - "astId": 111123, - "contract": "src/market/Size.sol:Size", - "label": "feeRecipient", - "offset": 0, - "slot": "5", - "type": "t_address" - } - ] - }, - "t_struct(LimitOrder)114583_storage": { - "encoding": "inplace", - "label": "struct LimitOrder", - "numberOfBytes": "128", - "members": [ - { - "astId": 114579, - "contract": "src/market/Size.sol:Size", - "label": "maxDueDate", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 114582, - "contract": "src/market/Size.sol:Size", - "label": "curveRelativeTime", - "offset": 0, - "slot": "1", - "type": "t_struct(YieldCurve)115557_storage" - } - ] - }, - "t_struct(Oracle)111147_storage": { - "encoding": "inplace", - "label": "struct Oracle", - "numberOfBytes": "64", - "members": [ - { - "astId": 111140, - "contract": "src/market/Size.sol:Size", - "label": "priceFeed", - "offset": 0, - "slot": "0", - "type": "t_contract(IPriceFeed)125283" - }, - { - "astId": 111142, - "contract": "src/market/Size.sol:Size", - "label": "variablePoolBorrowRate", - "offset": 0, - "slot": "1", - "type": "t_uint128" - }, - { - "astId": 111144, - "contract": "src/market/Size.sol:Size", - "label": "variablePoolBorrowRateUpdatedAt", - "offset": 16, - "slot": "1", - "type": "t_uint64" - }, - { - "astId": 111146, - "contract": "src/market/Size.sol:Size", - "label": "variablePoolBorrowRateStaleRateInterval", - "offset": 24, - "slot": "1", - "type": "t_uint64" - } - ] - }, - "t_struct(RiskConfig)111137_storage": { - "encoding": "inplace", - "label": "struct RiskConfig", - "numberOfBytes": "192", - "members": [ - { - "astId": 111126, - "contract": "src/market/Size.sol:Size", - "label": "crOpening", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 111128, - "contract": "src/market/Size.sol:Size", - "label": "crLiquidation", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 111130, - "contract": "src/market/Size.sol:Size", - "label": "minimumCreditBorrowToken", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 111132, - "contract": "src/market/Size.sol:Size", - "label": "___deprecated_borrowTokenCap", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 111134, - "contract": "src/market/Size.sol:Size", - "label": "minTenor", - "offset": 0, - "slot": "4", - "type": "t_uint256" - }, - { - "astId": 111136, - "contract": "src/market/Size.sol:Size", - "label": "maxTenor", - "offset": 0, - "slot": "5", - "type": "t_uint256" - } - ] - }, - "t_struct(State)111213_storage": { - "encoding": "inplace", - "label": "struct State", - "numberOfBytes": "928", - "members": [ - { - "astId": 111203, - "contract": "src/market/Size.sol:Size", - "label": "feeConfig", - "offset": 0, - "slot": "0", - "type": "t_struct(FeeConfig)111124_storage" - }, - { - "astId": 111206, - "contract": "src/market/Size.sol:Size", - "label": "riskConfig", - "offset": 0, - "slot": "6", - "type": "t_struct(RiskConfig)111137_storage" - }, - { - "astId": 111209, - "contract": "src/market/Size.sol:Size", - "label": "oracle", - "offset": 0, - "slot": "12", - "type": "t_struct(Oracle)111147_storage" - }, - { - "astId": 111212, - "contract": "src/market/Size.sol:Size", - "label": "data", - "offset": 0, - "slot": "14", - "type": "t_struct(Data)111200_storage" - } - ] - }, - "t_struct(User)111102_storage": { - "encoding": "inplace", - "label": "struct User", - "numberOfBytes": "320", - "members": [ - { - "astId": 111094, - "contract": "src/market/Size.sol:Size", - "label": "loanOffer", - "offset": 0, - "slot": "0", - "type": "t_struct(LimitOrder)114583_storage" - }, - { - "astId": 111097, - "contract": "src/market/Size.sol:Size", - "label": "borrowOffer", - "offset": 0, - "slot": "4", - "type": "t_struct(LimitOrder)114583_storage" - }, - { - "astId": 111099, - "contract": "src/market/Size.sol:Size", - "label": "openingLimitBorrowCR", - "offset": 0, - "slot": "8", - "type": "t_uint256" - }, - { - "astId": 111101, - "contract": "src/market/Size.sol:Size", - "label": "allCreditPositionsForSaleDisabled", - "offset": 0, - "slot": "9", - "type": "t_bool" - } - ] - }, - "t_struct(UserCopyLimitOrderConfigs)111111_storage": { - "encoding": "inplace", - "label": "struct UserCopyLimitOrderConfigs", - "numberOfBytes": "352", - "members": [ - { - "astId": 111104, - "contract": "src/market/Size.sol:Size", - "label": "___deprecated_copyAddress", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 111107, - "contract": "src/market/Size.sol:Size", - "label": "copyLoanOfferConfig", - "offset": 0, - "slot": "1", - "type": "t_struct(CopyLimitOrderConfig)114594_storage" - }, - { - "astId": 111110, - "contract": "src/market/Size.sol:Size", - "label": "copyBorrowOfferConfig", - "offset": 0, - "slot": "6", - "type": "t_struct(CopyLimitOrderConfig)114594_storage" - } - ] - }, - "t_struct(YieldCurve)115557_storage": { - "encoding": "inplace", - "label": "struct YieldCurve", - "numberOfBytes": "96", - "members": [ - { - "astId": 115550, - "contract": "src/market/Size.sol:Size", - "label": "tenors", - "offset": 0, - "slot": "0", - "type": "t_array(t_uint256)dyn_storage" - }, - { - "astId": 115553, - "contract": "src/market/Size.sol:Size", - "label": "aprs", - "offset": 0, - "slot": "1", - "type": "t_array(t_int256)dyn_storage" - }, - { - "astId": 115556, - "contract": "src/market/Size.sol:Size", - "label": "marketRateMultipliers", - "offset": 0, - "slot": "2", - "type": "t_array(t_uint256)dyn_storage" - } - ] - }, - "t_uint128": { - "encoding": "inplace", - "label": "uint128", - "numberOfBytes": "16" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - }, - "ast": { - "absolutePath": "src/market/Size.sol", - "id": 111070, - "exportedSymbols": { - "AccessControlUpgradeable": [52349], - "BORROW_RATE_UPDATER_ROLE": [109169], - "BuyCreditLimit": [116125], - "BuyCreditLimitOnBehalfOfParams": [115987], - "BuyCreditLimitParams": [115981], - "BuyCreditMarket": [116864], - "BuyCreditMarketOnBehalfOfParams": [116180], - "BuyCreditMarketParams": [116172], - "Claim": [117028], - "ClaimParams": [116886], - "Compensate": [117428], - "CompensateOnBehalfOfParams": [117062], - "CompensateParams": [117056], - "Deposit": [117774], - "DepositOnBehalfOfParams": [117457], - "DepositParams": [117451], - "Errors": [113603], - "Events": [113932], - "IMulticall": [111732], - "ISize": [111904], - "ISizeAdmin": [111931], - "ISizeFactory": [109242], - "ISizeV1_7": [112183], - "ISizeV1_8": [112209], - "ISizeView": [112071], - "Initializable": [52949], - "Initialize": [118600], - "InitializeDataParams": [117851], - "InitializeFeeConfigParams": [117822], - "InitializeOracleParams": [117838], - "InitializeRiskConfigParams": [117833], - "KEEPER_ROLE": [109159], - "Liquidate": [118959], - "LiquidateParams": [118627], - "LiquidateWithReplacement": [119378], - "LiquidateWithReplacementParams": [118999], - "Multicall": [114559], - "PAUSER_ROLE": [109164], - "PartialRepay": [119593], - "PartialRepayParams": [119407], - "PausableUpgradeable": [55004], - "RESERVED_ID": [113961], - "ReentrancyGuardUpgradeableWithViewModifier": [109851], - "Repay": [119747], - "RepayParams": [119616], - "RiskLibrary": [115538], - "SelfLiquidate": [120011], - "SelfLiquidateOnBehalfOfParams": [119776], - "SelfLiquidateParams": [119768], - "SellCreditLimit": [120176], - "SellCreditLimitOnBehalfOfParams": [120038], - "SellCreditLimitParams": [120032], - "SellCreditMarket": [120882], - "SellCreditMarketOnBehalfOfParams": [120230], - "SellCreditMarketParams": [120222], - "SetCopyLimitOrderConfigs": [121056], - "SetCopyLimitOrderConfigsOnBehalfOfParams": [120909], - "SetCopyLimitOrderConfigsParams": [120903], - "SetUserConfiguration": [121312], - "SetUserConfigurationOnBehalfOfParams": [121089], - "SetUserConfigurationParams": [121083], - "SetVault": [121425], - "SetVaultOnBehalfOfParams": [121333], - "SetVaultParams": [121327], - "Size": [111069], - "SizeView": [111671], - "State": [111213], - "UUPSUpgradeable": [53131], - "UpdateConfig": [121957], - "UpdateConfigParams": [121453], - "UserView": [111695], - "Withdraw": [122245], - "WithdrawOnBehalfOfParams": [121988], - "WithdrawParams": [121982] - }, - "nodeType": "SourceUnit", - "src": "32:17331:279", - "nodes": [ - { - "id": 109853, - "nodeType": "PragmaDirective", - "src": "32:23:279", - "nodes": [], - "literals": ["solidity", "0.8", ".23"] - }, - { - "id": 109855, - "nodeType": "ImportDirective", - "src": "57:113:279", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 52350, - "symbolAliases": [ - { - "foreign": { - "id": 109854, - "name": "AccessControlUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52349, - "src": "65:24:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109857, - "nodeType": "ImportDirective", - "src": "172:96:279", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 52950, - "symbolAliases": [ - { - "foreign": { - "id": 109856, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52949, - "src": "180:13:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109859, - "nodeType": "ImportDirective", - "src": "269:100:279", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 53132, - "symbolAliases": [ - { - "foreign": { - "id": 109858, - "name": "UUPSUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53131, - "src": "277:15:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109861, - "nodeType": "ImportDirective", - "src": "370:102:279", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 55005, - "symbolAliases": [ - { - "foreign": { - "id": 109860, - "name": "PausableUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55004, - "src": "378:19:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109863, - "nodeType": "ImportDirective", - "src": "473:66:279", - "nodes": [], - "absolutePath": "src/market/libraries/LoanLibrary.sol", - "file": "@src/market/libraries/LoanLibrary.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 114303, - "symbolAliases": [ - { - "foreign": { - "id": 109862, - "name": "RESERVED_ID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113961, - "src": "481:11:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109869, - "nodeType": "ImportDirective", - "src": "541:195:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/Initialize.sol", - "file": "@src/market/libraries/actions/Initialize.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 118601, - "symbolAliases": [ - { - "foreign": { - "id": 109864, - "name": "Initialize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118600, - "src": "554:10:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109865, - "name": "InitializeDataParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117851, - "src": "570:20:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109866, - "name": "InitializeFeeConfigParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117822, - "src": "596:25:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109867, - "name": "InitializeOracleParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117838, - "src": "627:22:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109868, - "name": "InitializeRiskConfigParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117833, - "src": "655:26:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109872, - "nodeType": "ImportDirective", - "src": "737:96:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/UpdateConfig.sol", - "file": "@src/market/libraries/actions/UpdateConfig.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 121958, - "symbolAliases": [ - { - "foreign": { - "id": 109870, - "name": "UpdateConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121957, - "src": "745:12:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109871, - "name": "UpdateConfigParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121453, - "src": "759:18:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109876, - "nodeType": "ImportDirective", - "src": "835:152:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/SellCreditLimit.sol", - "file": "@src/market/libraries/actions/SellCreditLimit.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 120177, - "symbolAliases": [ - { - "foreign": { - "id": 109873, - "name": "SellCreditLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120176, - "src": "848:15:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109874, - "name": "SellCreditLimitOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120038, - "src": "869:31:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109875, - "name": "SellCreditLimitParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120032, - "src": "906:21:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109880, - "nodeType": "ImportDirective", - "src": "988:156:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/SellCreditMarket.sol", - "file": "@src/market/libraries/actions/SellCreditMarket.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 120883, - "symbolAliases": [ - { - "foreign": { - "id": 109877, - "name": "SellCreditMarket", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120882, - "src": "1001:16:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109878, - "name": "SellCreditMarketOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120230, - "src": "1023:32:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109879, - "name": "SellCreditMarketParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120222, - "src": "1061:22:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109884, - "nodeType": "ImportDirective", - "src": "1146:152:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/BuyCreditMarket.sol", - "file": "@src/market/libraries/actions/BuyCreditMarket.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 116865, - "symbolAliases": [ - { - "foreign": { - "id": 109881, - "name": "BuyCreditMarket", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116864, - "src": "1159:15:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109882, - "name": "BuyCreditMarketOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116180, - "src": "1180:31:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109883, - "name": "BuyCreditMarketParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116172, - "src": "1217:21:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109887, - "nodeType": "ImportDirective", - "src": "1299:75:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/Claim.sol", - "file": "@src/market/libraries/actions/Claim.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 117029, - "symbolAliases": [ - { - "foreign": { - "id": 109885, - "name": "Claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117028, - "src": "1307:5:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109886, - "name": "ClaimParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116886, - "src": "1314:11:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109891, - "nodeType": "ImportDirective", - "src": "1375:106:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/Deposit.sol", - "file": "@src/market/libraries/actions/Deposit.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 117775, - "symbolAliases": [ - { - "foreign": { - "id": 109888, - "name": "Deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117774, - "src": "1383:7:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109889, - "name": "DepositOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117457, - "src": "1392:23:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109890, - "name": "DepositParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117451, - "src": "1417:13:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109895, - "nodeType": "ImportDirective", - "src": "1482:172:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/SetUserConfiguration.sol", - "file": "@src/market/libraries/actions/SetUserConfiguration.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 121313, - "symbolAliases": [ - { - "foreign": { - "id": 109892, - "name": "SetUserConfiguration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121312, - "src": "1495:20:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109893, - "name": "SetUserConfigurationOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121089, - "src": "1521:36:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109894, - "name": "SetUserConfigurationParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121083, - "src": "1563:26:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109899, - "nodeType": "ImportDirective", - "src": "1655:110:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/SetVault.sol", - "file": "@src/market/libraries/actions/SetVault.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 121426, - "symbolAliases": [ - { - "foreign": { - "id": 109896, - "name": "SetVault", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121425, - "src": "1663:8:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109897, - "name": "SetVaultOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121333, - "src": "1673:24:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109898, - "name": "SetVaultParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121327, - "src": "1699:14:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109903, - "nodeType": "ImportDirective", - "src": "1766:110:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/Withdraw.sol", - "file": "@src/market/libraries/actions/Withdraw.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 122246, - "symbolAliases": [ - { - "foreign": { - "id": 109900, - "name": "Withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122245, - "src": "1774:8:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109901, - "name": "WithdrawOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121988, - "src": "1784:24:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109902, - "name": "WithdrawParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121982, - "src": "1810:14:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109907, - "nodeType": "ImportDirective", - "src": "1878:148:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/BuyCreditLimit.sol", - "file": "@src/market/libraries/actions/BuyCreditLimit.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 116126, - "symbolAliases": [ - { - "foreign": { - "id": 109904, - "name": "BuyCreditLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116125, - "src": "1891:14:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109905, - "name": "BuyCreditLimitOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115987, - "src": "1911:30:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109906, - "name": "BuyCreditLimitParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115981, - "src": "1947:20:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109910, - "nodeType": "ImportDirective", - "src": "2027:87:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/Liquidate.sol", - "file": "@src/market/libraries/actions/Liquidate.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 118960, - "symbolAliases": [ - { - "foreign": { - "id": 109908, - "name": "Liquidate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118959, - "src": "2035:9:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109909, - "name": "LiquidateParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118627, - "src": "2046:15:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109912, - "nodeType": "ImportDirective", - "src": "2116:119:279", - "nodes": [], - "absolutePath": "src/helpers/ReentrancyGuardUpgradeableWithViewModifier.sol", - "file": "@src/helpers/ReentrancyGuardUpgradeableWithViewModifier.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 109852, - "symbolAliases": [ - { - "foreign": { - "id": 109911, - "name": "ReentrancyGuardUpgradeableWithViewModifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109851, - "src": "2124:42:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109914, - "nodeType": "ImportDirective", - "src": "2236:50:279", - "nodes": [], - "absolutePath": "src/market/SizeStorage.sol", - "file": "@src/market/SizeStorage.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 111219, - "symbolAliases": [ - { - "foreign": { - "id": 109913, - "name": "State", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111213, - "src": "2244:5:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109916, - "nodeType": "ImportDirective", - "src": "2287:62:279", - "nodes": [], - "absolutePath": "src/market/libraries/Multicall.sol", - "file": "@src/market/libraries/Multicall.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 114560, - "symbolAliases": [ - { - "foreign": { - "id": 109915, - "name": "Multicall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114559, - "src": "2295:9:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109920, - "nodeType": "ImportDirective", - "src": "2350:118:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/Compensate.sol", - "file": "@src/market/libraries/actions/Compensate.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 117429, - "symbolAliases": [ - { - "foreign": { - "id": 109917, - "name": "Compensate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117428, - "src": "2358:10:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109918, - "name": "CompensateOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117062, - "src": "2370:26:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109919, - "name": "CompensateParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117056, - "src": "2398:16:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109923, - "nodeType": "ImportDirective", - "src": "2469:96:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/PartialRepay.sol", - "file": "@src/market/libraries/actions/PartialRepay.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 119594, - "symbolAliases": [ - { - "foreign": { - "id": 109921, - "name": "PartialRepay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119593, - "src": "2477:12:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109922, - "name": "PartialRepayParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119407, - "src": "2491:18:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109926, - "nodeType": "ImportDirective", - "src": "2567:142:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/LiquidateWithReplacement.sol", - "file": "@src/market/libraries/actions/LiquidateWithReplacement.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 119379, - "symbolAliases": [ - { - "foreign": { - "id": 109924, - "name": "LiquidateWithReplacement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119378, - "src": "2580:24:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109925, - "name": "LiquidateWithReplacementParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118999, - "src": "2610:30:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109929, - "nodeType": "ImportDirective", - "src": "2710:75:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/Repay.sol", - "file": "@src/market/libraries/actions/Repay.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 119748, - "symbolAliases": [ - { - "foreign": { - "id": 109927, - "name": "Repay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119747, - "src": "2718:5:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109928, - "name": "RepayParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119616, - "src": "2725:11:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109933, - "nodeType": "ImportDirective", - "src": "2786:144:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/SelfLiquidate.sol", - "file": "@src/market/libraries/actions/SelfLiquidate.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 120012, - "symbolAliases": [ - { - "foreign": { - "id": 109930, - "name": "SelfLiquidate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120011, - "src": "2799:13:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109931, - "name": "SelfLiquidateOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119776, - "src": "2818:29:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109932, - "name": "SelfLiquidateParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119768, - "src": "2853:19:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109937, - "nodeType": "ImportDirective", - "src": "2931:188:279", - "nodes": [], - "absolutePath": "src/market/libraries/actions/SetCopyLimitOrderConfigs.sol", - "file": "@src/market/libraries/actions/SetCopyLimitOrderConfigs.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 121057, - "symbolAliases": [ - { - "foreign": { - "id": 109934, - "name": "SetCopyLimitOrderConfigs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121056, - "src": "2944:24:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109935, - "name": "SetCopyLimitOrderConfigsOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120909, - "src": "2974:40:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109936, - "name": "SetCopyLimitOrderConfigsParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120903, - "src": "3020:30:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109939, - "nodeType": "ImportDirective", - "src": "3121:66:279", - "nodes": [], - "absolutePath": "src/market/libraries/RiskLibrary.sol", - "file": "@src/market/libraries/RiskLibrary.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 115539, - "symbolAliases": [ - { - "foreign": { - "id": 109938, - "name": "RiskLibrary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115538, - "src": "3129:11:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109941, - "nodeType": "ImportDirective", - "src": "3189:50:279", - "nodes": [], - "absolutePath": "src/market/SizeView.sol", - "file": "@src/market/SizeView.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 111672, - "symbolAliases": [ - { - "foreign": { - "id": 109940, - "name": "SizeView", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111671, - "src": "3197:8:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109943, - "nodeType": "ImportDirective", - "src": "3240:56:279", - "nodes": [], - "absolutePath": "src/market/libraries/Events.sol", - "file": "@src/market/libraries/Events.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 113933, - "symbolAliases": [ - { - "foreign": { - "id": 109942, - "name": "Events", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113932, - "src": "3248:6:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109945, - "nodeType": "ImportDirective", - "src": "3298:65:279", - "nodes": [], - "absolutePath": "src/market/interfaces/IMulticall.sol", - "file": "@src/market/interfaces/IMulticall.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 111733, - "symbolAliases": [ - { - "foreign": { - "id": 109944, - "name": "IMulticall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111732, - "src": "3306:10:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109947, - "nodeType": "ImportDirective", - "src": "3364:55:279", - "nodes": [], - "absolutePath": "src/market/interfaces/ISize.sol", - "file": "@src/market/interfaces/ISize.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 111905, - "symbolAliases": [ - { - "foreign": { - "id": 109946, - "name": "ISize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111904, - "src": "3372:5:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109949, - "nodeType": "ImportDirective", - "src": "3420:65:279", - "nodes": [], - "absolutePath": "src/market/interfaces/ISizeAdmin.sol", - "file": "@src/market/interfaces/ISizeAdmin.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 111932, - "symbolAliases": [ - { - "foreign": { - "id": 109948, - "name": "ISizeAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111931, - "src": "3428:10:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109951, - "nodeType": "ImportDirective", - "src": "3486:68:279", - "nodes": [], - "absolutePath": "src/market/interfaces/v1.7/ISizeV1_7.sol", - "file": "@src/market/interfaces/v1.7/ISizeV1_7.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 112184, - "symbolAliases": [ - { - "foreign": { - "id": 109950, - "name": "ISizeV1_7", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112183, - "src": "3494:9:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109953, - "nodeType": "ImportDirective", - "src": "3555:68:279", - "nodes": [], - "absolutePath": "src/market/interfaces/v1.8/ISizeV1_8.sol", - "file": "@src/market/interfaces/v1.8/ISizeV1_8.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 112210, - "symbolAliases": [ - { - "foreign": { - "id": 109952, - "name": "ISizeV1_8", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112209, - "src": "3563:9:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109955, - "nodeType": "ImportDirective", - "src": "3624:56:279", - "nodes": [], - "absolutePath": "src/market/libraries/Errors.sol", - "file": "@src/market/libraries/Errors.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 113604, - "symbolAliases": [ - { - "foreign": { - "id": 109954, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113603, - "src": "3632:6:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109960, - "nodeType": "ImportDirective", - "src": "3682:128:279", - "nodes": [], - "absolutePath": "src/factory/interfaces/ISizeFactory.sol", - "file": "@src/factory/interfaces/ISizeFactory.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 109243, - "symbolAliases": [ - { - "foreign": { - "id": 109956, - "name": "BORROW_RATE_UPDATER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109169, - "src": "3695:24:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109957, - "name": "ISizeFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109242, - "src": "3721:12:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109958, - "name": "KEEPER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109159, - "src": "3735:11:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 109959, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109164, - "src": "3748:11:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109962, - "nodeType": "ImportDirective", - "src": "3812:54:279", - "nodes": [], - "absolutePath": "src/market/SizeViewData.sol", - "file": "@src/market/SizeViewData.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 111719, - "symbolAliases": [ - { - "foreign": { - "id": 109961, - "name": "UserView", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111695, - "src": "3820:8:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 109964, - "nodeType": "ImportDirective", - "src": "3867:63:279", - "nodes": [], - "absolutePath": "src/market/interfaces/ISizeView.sol", - "file": "@src/market/interfaces/ISizeView.sol", - "nameLocation": "-1:-1:-1", - "scope": 111070, - "sourceUnit": 112072, - "symbolAliases": [ - { - "foreign": { - "id": 109963, - "name": "ISizeView", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112071, - "src": "3875:9:279", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 111069, - "nodeType": "ContractDefinition", - "src": "4084:13278:279", - "nodes": [ - { - "id": 109979, - "nodeType": "UsingForDirective", - "src": "4259:27:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 109976, - "name": "Initialize", - "nameLocations": ["4265:10:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 118600, - "src": "4265:10:279" - }, - "typeName": { - "id": 109978, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 109977, - "name": "State", - "nameLocations": ["4280:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4280:5:279" - }, - "referencedDeclaration": 111213, - "src": "4280:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 109983, - "nodeType": "UsingForDirective", - "src": "4291:29:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 109980, - "name": "UpdateConfig", - "nameLocations": ["4297:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121957, - "src": "4297:12:279" - }, - "typeName": { - "id": 109982, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 109981, - "name": "State", - "nameLocations": ["4314:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4314:5:279" - }, - "referencedDeclaration": 111213, - "src": "4314:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 109987, - "nodeType": "UsingForDirective", - "src": "4325:24:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 109984, - "name": "Deposit", - "nameLocations": ["4331:7:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117774, - "src": "4331:7:279" - }, - "typeName": { - "id": 109986, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 109985, - "name": "State", - "nameLocations": ["4343:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4343:5:279" - }, - "referencedDeclaration": 111213, - "src": "4343:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 109991, - "nodeType": "UsingForDirective", - "src": "4354:25:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 109988, - "name": "Withdraw", - "nameLocations": ["4360:8:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 122245, - "src": "4360:8:279" - }, - "typeName": { - "id": 109990, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 109989, - "name": "State", - "nameLocations": ["4373:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4373:5:279" - }, - "referencedDeclaration": 111213, - "src": "4373:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 109995, - "nodeType": "UsingForDirective", - "src": "4384:33:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 109992, - "name": "SellCreditMarket", - "nameLocations": ["4390:16:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120882, - "src": "4390:16:279" - }, - "typeName": { - "id": 109994, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 109993, - "name": "State", - "nameLocations": ["4411:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4411:5:279" - }, - "referencedDeclaration": 111213, - "src": "4411:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 109999, - "nodeType": "UsingForDirective", - "src": "4422:32:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 109996, - "name": "SellCreditLimit", - "nameLocations": ["4428:15:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120176, - "src": "4428:15:279" - }, - "typeName": { - "id": 109998, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 109997, - "name": "State", - "nameLocations": ["4448:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4448:5:279" - }, - "referencedDeclaration": 111213, - "src": "4448:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110003, - "nodeType": "UsingForDirective", - "src": "4459:32:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110000, - "name": "BuyCreditMarket", - "nameLocations": ["4465:15:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 116864, - "src": "4465:15:279" - }, - "typeName": { - "id": 110002, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110001, - "name": "State", - "nameLocations": ["4485:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4485:5:279" - }, - "referencedDeclaration": 111213, - "src": "4485:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110007, - "nodeType": "UsingForDirective", - "src": "4496:31:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110004, - "name": "BuyCreditLimit", - "nameLocations": ["4502:14:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 116125, - "src": "4502:14:279" - }, - "typeName": { - "id": 110006, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110005, - "name": "State", - "nameLocations": ["4521:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4521:5:279" - }, - "referencedDeclaration": 111213, - "src": "4521:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110011, - "nodeType": "UsingForDirective", - "src": "4532:22:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110008, - "name": "Repay", - "nameLocations": ["4538:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 119747, - "src": "4538:5:279" - }, - "typeName": { - "id": 110010, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110009, - "name": "State", - "nameLocations": ["4548:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4548:5:279" - }, - "referencedDeclaration": 111213, - "src": "4548:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110015, - "nodeType": "UsingForDirective", - "src": "4559:22:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110012, - "name": "Claim", - "nameLocations": ["4565:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117028, - "src": "4565:5:279" - }, - "typeName": { - "id": 110014, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110013, - "name": "State", - "nameLocations": ["4575:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4575:5:279" - }, - "referencedDeclaration": 111213, - "src": "4575:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110019, - "nodeType": "UsingForDirective", - "src": "4586:26:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110016, - "name": "Liquidate", - "nameLocations": ["4592:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 118959, - "src": "4592:9:279" - }, - "typeName": { - "id": 110018, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110017, - "name": "State", - "nameLocations": ["4606:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4606:5:279" - }, - "referencedDeclaration": 111213, - "src": "4606:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110023, - "nodeType": "UsingForDirective", - "src": "4617:30:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110020, - "name": "SelfLiquidate", - "nameLocations": ["4623:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120011, - "src": "4623:13:279" - }, - "typeName": { - "id": 110022, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110021, - "name": "State", - "nameLocations": ["4641:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4641:5:279" - }, - "referencedDeclaration": 111213, - "src": "4641:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110027, - "nodeType": "UsingForDirective", - "src": "4652:41:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110024, - "name": "LiquidateWithReplacement", - "nameLocations": ["4658:24:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 119378, - "src": "4658:24:279" - }, - "typeName": { - "id": 110026, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110025, - "name": "State", - "nameLocations": ["4687:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4687:5:279" - }, - "referencedDeclaration": 111213, - "src": "4687:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110031, - "nodeType": "UsingForDirective", - "src": "4698:27:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110028, - "name": "Compensate", - "nameLocations": ["4704:10:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117428, - "src": "4704:10:279" - }, - "typeName": { - "id": 110030, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110029, - "name": "State", - "nameLocations": ["4719:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4719:5:279" - }, - "referencedDeclaration": 111213, - "src": "4719:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110035, - "nodeType": "UsingForDirective", - "src": "4730:29:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110032, - "name": "PartialRepay", - "nameLocations": ["4736:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 119593, - "src": "4736:12:279" - }, - "typeName": { - "id": 110034, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110033, - "name": "State", - "nameLocations": ["4753:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4753:5:279" - }, - "referencedDeclaration": 111213, - "src": "4753:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110039, - "nodeType": "UsingForDirective", - "src": "4764:37:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110036, - "name": "SetUserConfiguration", - "nameLocations": ["4770:20:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121312, - "src": "4770:20:279" - }, - "typeName": { - "id": 110038, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110037, - "name": "State", - "nameLocations": ["4795:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4795:5:279" - }, - "referencedDeclaration": 111213, - "src": "4795:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110043, - "nodeType": "UsingForDirective", - "src": "4806:28:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110040, - "name": "RiskLibrary", - "nameLocations": ["4812:11:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 115538, - "src": "4812:11:279" - }, - "typeName": { - "id": 110042, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110041, - "name": "State", - "nameLocations": ["4828:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4828:5:279" - }, - "referencedDeclaration": 111213, - "src": "4828:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110047, - "nodeType": "UsingForDirective", - "src": "4839:26:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110044, - "name": "Multicall", - "nameLocations": ["4845:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 114559, - "src": "4845:9:279" - }, - "typeName": { - "id": 110046, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110045, - "name": "State", - "nameLocations": ["4859:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4859:5:279" - }, - "referencedDeclaration": 111213, - "src": "4859:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110051, - "nodeType": "UsingForDirective", - "src": "4870:41:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110048, - "name": "SetCopyLimitOrderConfigs", - "nameLocations": ["4876:24:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121056, - "src": "4876:24:279" - }, - "typeName": { - "id": 110050, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110049, - "name": "State", - "nameLocations": ["4905:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4905:5:279" - }, - "referencedDeclaration": 111213, - "src": "4905:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110055, - "nodeType": "UsingForDirective", - "src": "4916:25:279", - "nodes": [], - "global": false, - "libraryName": { - "id": 110052, - "name": "SetVault", - "nameLocations": ["4922:8:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121425, - "src": "4922:8:279" - }, - "typeName": { - "id": 110054, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110053, - "name": "State", - "nameLocations": ["4935:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111213, - "src": "4935:5:279" - }, - "referencedDeclaration": 111213, - "src": "4935:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage_ptr", - "typeString": "struct State" - } - } - }, - { - "id": 110063, - "nodeType": "FunctionDefinition", - "src": "5000:53:279", - "nodes": [], - "body": { - "id": 110062, - "nodeType": "Block", - "src": "5014:39:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 110059, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52903, - "src": "5024:20:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5024:22:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110061, - "nodeType": "ExpressionStatement", - "src": "5024:22:279" - } - ] - }, - "documentation": { - "id": 110056, - "nodeType": "StructuredDocumentation", - "src": "4947:48:279", - "text": "@custom:oz-upgrades-unsafe-allow constructor" - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 110057, - "nodeType": "ParameterList", - "parameters": [], - "src": "5011:2:279" - }, - "returnParameters": { - "id": 110058, - "nodeType": "ParameterList", - "parameters": [], - "src": "5014:0:279" - }, - "scope": 111069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110134, - "nodeType": "FunctionDefinition", - "src": "5059:661:279", - "nodes": [], - "body": { - "id": 110133, - "nodeType": "Block", - "src": "5306:414:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110085, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110065, - "src": "5341:5:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 110086, - "name": "f", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110068, - "src": "5348:1:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeFeeConfigParams_$117822_calldata_ptr", - "typeString": "struct InitializeFeeConfigParams calldata" - } - }, - { - "id": 110087, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110071, - "src": "5351:1:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeRiskConfigParams_$117833_calldata_ptr", - "typeString": "struct InitializeRiskConfigParams calldata" - } - }, - { - "id": 110088, - "name": "o", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110074, - "src": "5354:1:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeOracleParams_$117838_calldata_ptr", - "typeString": "struct InitializeOracleParams calldata" - } - }, - { - "id": 110089, - "name": "d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110077, - "src": "5357:1:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeDataParams_$117851_calldata_ptr", - "typeString": "struct InitializeDataParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_InitializeFeeConfigParams_$117822_calldata_ptr", - "typeString": "struct InitializeFeeConfigParams calldata" - }, - { - "typeIdentifier": "t_struct$_InitializeRiskConfigParams_$117833_calldata_ptr", - "typeString": "struct InitializeRiskConfigParams calldata" - }, - { - "typeIdentifier": "t_struct$_InitializeOracleParams_$117838_calldata_ptr", - "typeString": "struct InitializeOracleParams calldata" - }, - { - "typeIdentifier": "t_struct$_InitializeDataParams_$117851_calldata_ptr", - "typeString": "struct InitializeDataParams calldata" - } - ], - "expression": { - "id": 110082, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "5316:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110084, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5322:18:279", - "memberName": "validateInitialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 118215, - "src": "5316:24:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_address_$_t_struct$_InitializeFeeConfigParams_$117822_memory_ptr_$_t_struct$_InitializeRiskConfigParams_$117833_memory_ptr_$_t_struct$_InitializeOracleParams_$117838_memory_ptr_$_t_struct$_InitializeDataParams_$117851_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,address,struct InitializeFeeConfigParams memory,struct InitializeRiskConfigParams memory,struct InitializeOracleParams memory,struct InitializeDataParams memory) view" - } - }, - "id": 110090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5316:43:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110091, - "nodeType": "ExpressionStatement", - "src": "5316:43:279" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 110092, - "name": "__AccessControl_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52050, - "src": "5370:20:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5370:22:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110094, - "nodeType": "ExpressionStatement", - "src": "5370:22:279" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 110095, - "name": "__Pausable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54908, - "src": "5402:15:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5402:17:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110097, - "nodeType": "ExpressionStatement", - "src": "5402:17:279" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 110098, - "name": "__ReentrancyGuard_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55044, - "src": "5429:22:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5429:24:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110100, - "nodeType": "ExpressionStatement", - "src": "5429:24:279" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 110101, - "name": "__UUPSUpgradeable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53003, - "src": "5463:22:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5463:24:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110103, - "nodeType": "ExpressionStatement", - "src": "5463:24:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110107, - "name": "f", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110068, - "src": "5522:1:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeFeeConfigParams_$117822_calldata_ptr", - "typeString": "struct InitializeFeeConfigParams calldata" - } - }, - { - "id": 110108, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110071, - "src": "5525:1:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeRiskConfigParams_$117833_calldata_ptr", - "typeString": "struct InitializeRiskConfigParams calldata" - } - }, - { - "id": 110109, - "name": "o", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110074, - "src": "5528:1:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeOracleParams_$117838_calldata_ptr", - "typeString": "struct InitializeOracleParams calldata" - } - }, - { - "id": 110110, - "name": "d", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110077, - "src": "5531:1:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeDataParams_$117851_calldata_ptr", - "typeString": "struct InitializeDataParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_InitializeFeeConfigParams_$117822_calldata_ptr", - "typeString": "struct InitializeFeeConfigParams calldata" - }, - { - "typeIdentifier": "t_struct$_InitializeRiskConfigParams_$117833_calldata_ptr", - "typeString": "struct InitializeRiskConfigParams calldata" - }, - { - "typeIdentifier": "t_struct$_InitializeOracleParams_$117838_calldata_ptr", - "typeString": "struct InitializeOracleParams calldata" - }, - { - "typeIdentifier": "t_struct$_InitializeDataParams_$117851_calldata_ptr", - "typeString": "struct InitializeDataParams calldata" - } - ], - "expression": { - "id": 110104, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "5498:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110106, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5504:17:279", - "memberName": "executeInitialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 118599, - "src": "5498:23:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_InitializeFeeConfigParams_$117822_memory_ptr_$_t_struct$_InitializeRiskConfigParams_$117833_memory_ptr_$_t_struct$_InitializeOracleParams_$117838_memory_ptr_$_t_struct$_InitializeDataParams_$117851_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct InitializeFeeConfigParams memory,struct InitializeRiskConfigParams memory,struct InitializeOracleParams memory,struct InitializeDataParams memory)" - } - }, - "id": 110111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5498:35:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110112, - "nodeType": "ExpressionStatement", - "src": "5498:35:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110114, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52015, - "src": "5554:18:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 110115, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110065, - "src": "5574:5:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110113, - "name": "_grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52302, - "src": "5543:10:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) returns (bool)" - } - }, - "id": 110116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5543:37:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 110117, - "nodeType": "ExpressionStatement", - "src": "5543:37:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110119, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109164, - "src": "5601:11:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 110120, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110065, - "src": "5614:5:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110118, - "name": "_grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52302, - "src": "5590:10:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) returns (bool)" - } - }, - "id": 110121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5590:30:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 110122, - "nodeType": "ExpressionStatement", - "src": "5590:30:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110124, - "name": "KEEPER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109159, - "src": "5641:11:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 110125, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110065, - "src": "5654:5:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110123, - "name": "_grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52302, - "src": "5630:10:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) returns (bool)" - } - }, - "id": 110126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5630:30:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 110127, - "nodeType": "ExpressionStatement", - "src": "5630:30:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110129, - "name": "BORROW_RATE_UPDATER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109169, - "src": "5681:24:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 110130, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110065, - "src": "5707:5:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110128, - "name": "_grantRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52302, - "src": "5670:10:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) returns (bool)" - } - }, - "id": 110131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5670:43:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 110132, - "nodeType": "ExpressionStatement", - "src": "5670:43:279" - } - ] - }, - "functionSelector": "f1bf35c3", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110080, - "kind": "modifierInvocation", - "modifierName": { - "id": 110079, - "name": "initializer", - "nameLocations": ["5294:11:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 52789, - "src": "5294:11:279" - }, - "nodeType": "ModifierInvocation", - "src": "5294:11:279" - } - ], - "name": "initialize", - "nameLocation": "5068:10:279", - "parameters": { - "id": 110078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110065, - "mutability": "mutable", - "name": "owner", - "nameLocation": "5096:5:279", - "nodeType": "VariableDeclaration", - "scope": 110134, - "src": "5088:13:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110064, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5088:7:279", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110068, - "mutability": "mutable", - "name": "f", - "nameLocation": "5146:1:279", - "nodeType": "VariableDeclaration", - "scope": 110134, - "src": "5111:36:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeFeeConfigParams_$117822_calldata_ptr", - "typeString": "struct InitializeFeeConfigParams" - }, - "typeName": { - "id": 110067, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110066, - "name": "InitializeFeeConfigParams", - "nameLocations": ["5111:25:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117822, - "src": "5111:25:279" - }, - "referencedDeclaration": 117822, - "src": "5111:25:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeFeeConfigParams_$117822_storage_ptr", - "typeString": "struct InitializeFeeConfigParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110071, - "mutability": "mutable", - "name": "r", - "nameLocation": "5193:1:279", - "nodeType": "VariableDeclaration", - "scope": 110134, - "src": "5157:37:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeRiskConfigParams_$117833_calldata_ptr", - "typeString": "struct InitializeRiskConfigParams" - }, - "typeName": { - "id": 110070, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110069, - "name": "InitializeRiskConfigParams", - "nameLocations": ["5157:26:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117833, - "src": "5157:26:279" - }, - "referencedDeclaration": 117833, - "src": "5157:26:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeRiskConfigParams_$117833_storage_ptr", - "typeString": "struct InitializeRiskConfigParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110074, - "mutability": "mutable", - "name": "o", - "nameLocation": "5236:1:279", - "nodeType": "VariableDeclaration", - "scope": 110134, - "src": "5204:33:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeOracleParams_$117838_calldata_ptr", - "typeString": "struct InitializeOracleParams" - }, - "typeName": { - "id": 110073, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110072, - "name": "InitializeOracleParams", - "nameLocations": ["5204:22:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117838, - "src": "5204:22:279" - }, - "referencedDeclaration": 117838, - "src": "5204:22:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeOracleParams_$117838_storage_ptr", - "typeString": "struct InitializeOracleParams" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110077, - "mutability": "mutable", - "name": "d", - "nameLocation": "5277:1:279", - "nodeType": "VariableDeclaration", - "scope": 110134, - "src": "5247:31:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeDataParams_$117851_calldata_ptr", - "typeString": "struct InitializeDataParams" - }, - "typeName": { - "id": 110076, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110075, - "name": "InitializeDataParams", - "nameLocations": ["5247:20:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117851, - "src": "5247:20:279" - }, - "referencedDeclaration": 117851, - "src": "5247:20:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializeDataParams_$117851_storage_ptr", - "typeString": "struct InitializeDataParams" - } - }, - "visibility": "internal" - } - ], - "src": "5078:206:279" - }, - "returnParameters": { - "id": 110081, - "nodeType": "ParameterList", - "parameters": [], - "src": "5306:0:279" - }, - "scope": 111069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110148, - "nodeType": "FunctionDefinition", - "src": "5756:126:279", - "nodes": [], - "body": { - "id": 110147, - "nodeType": "Block", - "src": "5841:41:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 110144, - "name": "__ReentrancyGuard_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55044, - "src": "5851:22:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5851:24:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110146, - "nodeType": "ExpressionStatement", - "src": "5851:24:279" - } - ] - }, - "baseFunctions": [112194], - "documentation": { - "id": 110135, - "nodeType": "StructuredDocumentation", - "src": "5726:25:279", - "text": "@inheritdoc ISizeV1_8" - }, - "functionSelector": "6c2eb350", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 110138, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52015, - "src": "5798:18:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 110139, - "kind": "modifierInvocation", - "modifierName": { - "id": 110137, - "name": "onlyRole", - "nameLocations": ["5789:8:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 52044, - "src": "5789:8:279" - }, - "nodeType": "ModifierInvocation", - "src": "5789:28:279" - }, - { - "arguments": [ - { - "hexValue": "315f30385f3030", - "id": 110141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5832:7:279", - "typeDescriptions": { - "typeIdentifier": "t_rational_10800_by_1", - "typeString": "int_const 10800" - }, - "value": "1_08_00" - } - ], - "id": 110142, - "kind": "modifierInvocation", - "modifierName": { - "id": 110140, - "name": "reinitializer", - "nameLocations": ["5818:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 52836, - "src": "5818:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "5818:22:279" - } - ], - "name": "reinitialize", - "nameLocation": "5765:12:279", - "parameters": { - "id": 110136, - "nodeType": "ParameterList", - "parameters": [], - "src": "5777:2:279" - }, - "returnParameters": { - "id": 110143, - "nodeType": "ParameterList", - "parameters": [], - "src": "5841:0:279" - }, - "scope": 111069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110195, - "nodeType": "FunctionDefinition", - "src": "5888:370:279", - "nodes": [], - "body": { - "id": 110194, - "nodeType": "Block", - "src": "5966:292:279", - "nodes": [], - "statements": [ - { - "condition": { - "arguments": [ - { - "id": 110158, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110150, - "src": "5988:4:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 110159, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110152, - "src": "5994:7:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110157, - "name": "hasRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52103, - "src": "5980:7:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view returns (bool)" - } - }, - "id": 110160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5980:22:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 110174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "expression": { - "expression": { - "id": 110166, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "6058:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110167, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6064:4:279", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 111212, - "src": "6058:10:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$111200_storage", - "typeString": "struct Data storage ref" - } - }, - "id": 110168, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6069:11:279", - "memberName": "sizeFactory", - "nodeType": "MemberAccess", - "referencedDeclaration": 111199, - "src": "6058:22:279", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISizeFactory_$109242", - "typeString": "contract ISizeFactory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISizeFactory_$109242", - "typeString": "contract ISizeFactory" - } - ], - "id": 110165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6050:7:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 110164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:279", - "typeDescriptions": {} - } - }, - "id": 110169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6050:31:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 110172, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6093:1:279", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 110171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6085:7:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 110170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6085:7:279", - "typeDescriptions": {} - } - }, - "id": 110173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6085:10:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6050:45:279", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 110191, - "nodeType": "Block", - "src": "6140:112:279", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110187, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110150, - "src": "6227:4:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 110188, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110152, - "src": "6233:7:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "expression": { - "id": 110181, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "6194:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110182, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6200:4:279", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 111212, - "src": "6194:10:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$111200_storage", - "typeString": "struct Data storage ref" - } - }, - "id": 110183, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6205:11:279", - "memberName": "sizeFactory", - "nodeType": "MemberAccess", - "referencedDeclaration": 111199, - "src": "6194:22:279", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISizeFactory_$109242", - "typeString": "contract ISizeFactory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISizeFactory_$109242", - "typeString": "contract ISizeFactory" - } - ], - "id": 110180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6186:7:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 110179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6186:7:279", - "typeDescriptions": {} - } - }, - "id": 110184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6186:31:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110178, - "name": "AccessControlUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52349, - "src": "6161:24:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AccessControlUpgradeable_$52349_$", - "typeString": "type(contract AccessControlUpgradeable)" - } - }, - "id": 110185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6161:57:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_AccessControlUpgradeable_$52349", - "typeString": "contract AccessControlUpgradeable" - } - }, - "id": 110186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6219:7:279", - "memberName": "hasRole", - "nodeType": "MemberAccess", - "referencedDeclaration": 52103, - "src": "6161:65:279", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view external returns (bool)" - } - }, - "id": 110189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6161:80:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 110156, - "id": 110190, - "nodeType": "Return", - "src": "6154:87:279" - } - ] - }, - "id": 110192, - "nodeType": "IfStatement", - "src": "6046:206:279", - "trueBody": { - "id": 110177, - "nodeType": "Block", - "src": "6097:37:279", - "statements": [ - { - "expression": { - "hexValue": "66616c7365", - "id": 110175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6118:5:279", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 110156, - "id": 110176, - "nodeType": "Return", - "src": "6111:12:279" - } - ] - } - }, - "id": 110193, - "nodeType": "IfStatement", - "src": "5976:276:279", - "trueBody": { - "id": 110163, - "nodeType": "Block", - "src": "6004:36:279", - "statements": [ - { - "expression": { - "hexValue": "74727565", - "id": 110161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6025:4:279", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 110156, - "id": 110162, - "nodeType": "Return", - "src": "6018:11:279" - } - ] - } - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_hasRole", - "nameLocation": "5897:8:279", - "parameters": { - "id": 110153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110150, - "mutability": "mutable", - "name": "role", - "nameLocation": "5914:4:279", - "nodeType": "VariableDeclaration", - "scope": 110195, - "src": "5906:12:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 110149, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5906:7:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110152, - "mutability": "mutable", - "name": "account", - "nameLocation": "5928:7:279", - "nodeType": "VariableDeclaration", - "scope": 110195, - "src": "5920:15:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5920:7:279", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5905:31:279" - }, - "returnParameters": { - "id": 110156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110155, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 110195, - "src": "5960:4:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 110154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5960:4:279", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "5959:6:279" - }, - "scope": 111069, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 110215, - "nodeType": "ModifierDefinition", - "src": "6264:194:279", - "nodes": [], - "body": { - "id": 110214, - "nodeType": "Block", - "src": "6316:142:279", - "nodes": [], - "statements": [ - { - "condition": { - "id": 110204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "6330:27:279", - "subExpression": { - "arguments": [ - { - "id": 110200, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110197, - "src": "6340:4:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 110201, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6346:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6350:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "6346:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110199, - "name": "_hasRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110195, - "src": "6331:8:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", - "typeString": "function (bytes32,address) view returns (bool)" - } - }, - "id": 110203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6331:26:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 110212, - "nodeType": "IfStatement", - "src": "6326:115:279", - "trueBody": { - "id": 110211, - "nodeType": "Block", - "src": "6359:82:279", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 110206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6413:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6417:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "6413:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 110208, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110197, - "src": "6425:4:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 110205, - "name": "AccessControlUnauthorizedAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55479, - "src": "6380:32:279", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) pure" - } - }, - "id": 110209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6380:50:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110210, - "nodeType": "RevertStatement", - "src": "6373:57:279" - } - ] - } - }, - { - "id": 110213, - "nodeType": "PlaceholderStatement", - "src": "6450:1:279" - } - ] - }, - "name": "onlyRoleOrSizeFactoryHasRole", - "nameLocation": "6273:28:279", - "parameters": { - "id": 110198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110197, - "mutability": "mutable", - "name": "role", - "nameLocation": "6310:4:279", - "nodeType": "VariableDeclaration", - "scope": 110215, - "src": "6302:12:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 110196, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6302:7:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6301:14:279" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 110225, - "nodeType": "FunctionDefinition", - "src": "6464:151:279", - "nodes": [], - "body": { - "id": 110224, - "nodeType": "Block", - "src": "6613:2:279", - "nodes": [], - "statements": [] - }, - "baseFunctions": [53085], - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 110221, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52015, - "src": "6589:18:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 110222, - "kind": "modifierInvocation", - "modifierName": { - "id": 110220, - "name": "onlyRoleOrSizeFactoryHasRole", - "nameLocations": ["6560:28:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 110215, - "src": "6560:28:279" - }, - "nodeType": "ModifierInvocation", - "src": "6560:48:279" - } - ], - "name": "_authorizeUpgrade", - "nameLocation": "6473:17:279", - "overrides": { - "id": 110219, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "6543:8:279" - }, - "parameters": { - "id": 110218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110217, - "mutability": "mutable", - "name": "newImplementation", - "nameLocation": "6499:17:279", - "nodeType": "VariableDeclaration", - "scope": 110225, - "src": "6491:25:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6491:7:279", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6490:27:279" - }, - "returnParameters": { - "id": 110223, - "nodeType": "ParameterList", - "parameters": [], - "src": "6613:0:279" - }, - "scope": 111069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 110259, - "nodeType": "ModifierDefinition", - "src": "6701:408:279", - "nodes": [], - "body": { - "id": 110258, - "nodeType": "Block", - "src": "6757:352:279", - "nodes": [], - "statements": [ - { - "assignments": [110231], - "declarations": [ - { - "constant": false, - "id": 110231, - "mutability": "mutable", - "name": "collateralRatioBefore", - "nameLocation": "6775:21:279", - "nodeType": "VariableDeclaration", - "scope": 110258, - "src": "6767:29:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6767:7:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 110236, - "initialValue": { - "arguments": [ - { - "id": 110234, - "name": "onBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110228, - "src": "6821:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 110232, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "6799:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110233, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6805:15:279", - "memberName": "collateralRatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 115332, - "src": "6799:21:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,address) view returns (uint256)" - } - }, - "id": 110235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6799:33:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6767:65:279" - }, - { - "id": 110237, - "nodeType": "PlaceholderStatement", - "src": "6842:1:279" - }, - { - "assignments": [110239], - "declarations": [ - { - "constant": false, - "id": 110239, - "mutability": "mutable", - "name": "collateralRatioAfter", - "nameLocation": "6861:20:279", - "nodeType": "VariableDeclaration", - "scope": 110258, - "src": "6853:28:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110238, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6853:7:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 110244, - "initialValue": { - "arguments": [ - { - "id": 110242, - "name": "onBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110228, - "src": "6906:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 110240, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "6884:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110241, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6890:15:279", - "memberName": "collateralRatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 115332, - "src": "6884:21:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,address) view returns (uint256)" - } - }, - "id": 110243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6884:33:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6853:64:279" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 110247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 110245, - "name": "collateralRatioAfter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110239, - "src": "6931:20:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 110246, - "name": "collateralRatioBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110231, - "src": "6955:21:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6931:45:279", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 110257, - "nodeType": "IfStatement", - "src": "6927:176:279", - "trueBody": { - "id": 110256, - "nodeType": "Block", - "src": "6978:125:279", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 110251, - "name": "onBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110228, - "src": "7036:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 110252, - "name": "collateralRatioBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110231, - "src": "7048:21:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 110253, - "name": "collateralRatioAfter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110239, - "src": "7071:20:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 110248, - "name": "Errors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113603, - "src": "6999:6:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Errors_$113603_$", - "typeString": "type(library Errors)" - } - }, - "id": 110250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7006:29:279", - "memberName": "MUST_IMPROVE_COLLATERAL_RATIO", - "nodeType": "MemberAccess", - "referencedDeclaration": 113208, - "src": "6999:36:279", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256) pure" - } - }, - "id": 110254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6999:93:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110255, - "nodeType": "RevertStatement", - "src": "6992:100:279" - } - ] - } - } - ] - }, - "documentation": { - "id": 110226, - "nodeType": "StructuredDocumentation", - "src": "6621:75:279", - "text": "@notice Validate that the user has not decreased their collateral ratio" - }, - "name": "mustImproveCollateralRatio", - "nameLocation": "6710:26:279", - "parameters": { - "id": 110229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110228, - "mutability": "mutable", - "name": "onBehalfOf", - "nameLocation": "6745:10:279", - "nodeType": "VariableDeclaration", - "scope": 110259, - "src": "6737:18:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6737:7:279", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6736:20:279" - }, - "virtual": false, - "visibility": "internal" - }, - { - "id": 110284, - "nodeType": "FunctionDefinition", - "src": "7146:259:279", - "nodes": [], - "body": { - "id": 110283, - "nodeType": "Block", - "src": "7311:94:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110274, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110263, - "src": "7348:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UpdateConfigParams_$121453_calldata_ptr", - "typeString": "struct UpdateConfigParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_UpdateConfigParams_$121453_calldata_ptr", - "typeString": "struct UpdateConfigParams calldata" - } - ], - "expression": { - "id": 110271, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "7321:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110273, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7327:20:279", - "memberName": "validateUpdateConfig", - "nodeType": "MemberAccess", - "referencedDeclaration": 121553, - "src": "7321:26:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_State_$111213_storage_ptr_$_t_struct$_UpdateConfigParams_$121453_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct UpdateConfigParams memory) pure" - } - }, - "id": 110275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7321:34:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110276, - "nodeType": "ExpressionStatement", - "src": "7321:34:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110280, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110263, - "src": "7391:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UpdateConfigParams_$121453_calldata_ptr", - "typeString": "struct UpdateConfigParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_UpdateConfigParams_$121453_calldata_ptr", - "typeString": "struct UpdateConfigParams calldata" - } - ], - "expression": { - "id": 110277, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "7365:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110279, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7371:19:279", - "memberName": "executeUpdateConfig", - "nodeType": "MemberAccess", - "referencedDeclaration": 121956, - "src": "7365:25:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_UpdateConfigParams_$121453_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct UpdateConfigParams memory)" - } - }, - "id": 110281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7365:33:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110282, - "nodeType": "ExpressionStatement", - "src": "7365:33:279" - } - ] - }, - "baseFunctions": [111916], - "documentation": { - "id": 110260, - "nodeType": "StructuredDocumentation", - "src": "7115:26:279", - "text": "@inheritdoc ISizeAdmin" - }, - "functionSelector": "0317b9df", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 110268, - "name": "DEFAULT_ADMIN_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52015, - "src": "7287:18:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 110269, - "kind": "modifierInvocation", - "modifierName": { - "id": 110267, - "name": "onlyRoleOrSizeFactoryHasRole", - "nameLocations": ["7258:28:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 110215, - "src": "7258:28:279" - }, - "nodeType": "ModifierInvocation", - "src": "7258:48:279" - } - ], - "name": "updateConfig", - "nameLocation": "7155:12:279", - "overrides": { - "id": 110266, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110265, - "name": "ISizeAdmin", - "nameLocations": ["7238:10:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111931, - "src": "7238:10:279" - } - ], - "src": "7229:20:279" - }, - "parameters": { - "id": 110264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110263, - "mutability": "mutable", - "name": "params", - "nameLocation": "7196:6:279", - "nodeType": "VariableDeclaration", - "scope": 110284, - "src": "7168:34:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UpdateConfigParams_$121453_calldata_ptr", - "typeString": "struct UpdateConfigParams" - }, - "typeName": { - "id": 110262, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110261, - "name": "UpdateConfigParams", - "nameLocations": ["7168:18:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121453, - "src": "7168:18:279" - }, - "referencedDeclaration": 121453, - "src": "7168:18:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_UpdateConfigParams_$121453_storage_ptr", - "typeString": "struct UpdateConfigParams" - } - }, - "visibility": "internal" - } - ], - "src": "7167:36:279" - }, - "returnParameters": { - "id": 110270, - "nodeType": "ParameterList", - "parameters": [], - "src": "7311:0:279" - }, - "scope": 111069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110333, - "nodeType": "FunctionDefinition", - "src": "7442:493:279", - "nodes": [], - "body": { - "id": 110332, - "nodeType": "Block", - "src": "7631:304:279", - "nodes": [], - "statements": [ - { - "assignments": [110298], - "declarations": [ - { - "constant": false, - "id": 110298, - "mutability": "mutable", - "name": "oldBorrowRate", - "nameLocation": "7649:13:279", - "nodeType": "VariableDeclaration", - "scope": 110332, - "src": "7641:21:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 110297, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "7641:7:279", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "id": 110302, - "initialValue": { - "expression": { - "expression": { - "id": 110299, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "7665:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110300, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7671:6:279", - "memberName": "oracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 111209, - "src": "7665:12:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$111147_storage", - "typeString": "struct Oracle storage ref" - } - }, - "id": 110301, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7678:22:279", - "memberName": "variablePoolBorrowRate", - "nodeType": "MemberAccess", - "referencedDeclaration": 111142, - "src": "7665:35:279", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7641:59:279" - }, - { - "expression": { - "id": 110309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "expression": { - "id": 110303, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "7710:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110306, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7716:6:279", - "memberName": "oracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 111209, - "src": "7710:12:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$111147_storage", - "typeString": "struct Oracle storage ref" - } - }, - "id": 110307, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "7723:22:279", - "memberName": "variablePoolBorrowRate", - "nodeType": "MemberAccess", - "referencedDeclaration": 111142, - "src": "7710:35:279", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 110308, - "name": "borrowRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110287, - "src": "7748:10:279", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "src": "7710:48:279", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "id": 110310, - "nodeType": "ExpressionStatement", - "src": "7710:48:279" - }, - { - "expression": { - "id": 110321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "expression": { - "id": 110311, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "7768:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7774:6:279", - "memberName": "oracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 111209, - "src": "7768:12:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Oracle_$111147_storage", - "typeString": "struct Oracle storage ref" - } - }, - "id": 110315, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "7781:31:279", - "memberName": "variablePoolBorrowRateUpdatedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 111144, - "src": "7768:44:279", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 110318, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "7822:5:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 110319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7828:9:279", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "7822:15:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 110317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7815:6:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 110316, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7815:6:279", - "typeDescriptions": {} - } - }, - "id": 110320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7815:23:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "7768:70:279", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 110322, - "nodeType": "ExpressionStatement", - "src": "7768:70:279" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 110326, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7890:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7894:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "7890:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 110328, - "name": "oldBorrowRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110298, - "src": "7902:13:279", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - { - "id": 110329, - "name": "borrowRate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110287, - "src": "7917:10:279", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - ], - "expression": { - "id": 110323, - "name": "Events", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113932, - "src": "7853:6:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Events_$113932_$", - "typeString": "type(library Events)" - } - }, - "id": 110325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7860:29:279", - "memberName": "VariablePoolBorrowRateUpdated", - "nodeType": "MemberAccess", - "referencedDeclaration": 113650, - "src": "7853:36:279", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint128_$_t_uint128_$returns$__$", - "typeString": "function (address,uint128,uint128)" - } - }, - "id": 110330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7853:75:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110331, - "nodeType": "EmitStatement", - "src": "7848:80:279" - } - ] - }, - "baseFunctions": [111922], - "documentation": { - "id": 110285, - "nodeType": "StructuredDocumentation", - "src": "7411:26:279", - "text": "@inheritdoc ISizeAdmin" - }, - "functionSelector": "4cbd882c", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110292, - "kind": "modifierInvocation", - "modifierName": { - "id": 110291, - "name": "nonReentrant", - "nameLocations": ["7551:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "7551:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "7551:12:279" - }, - { - "arguments": [ - { - "id": 110294, - "name": "BORROW_RATE_UPDATER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109169, - "src": "7601:24:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 110295, - "kind": "modifierInvocation", - "modifierName": { - "id": 110293, - "name": "onlyRoleOrSizeFactoryHasRole", - "nameLocations": ["7572:28:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 110215, - "src": "7572:28:279" - }, - "nodeType": "ModifierInvocation", - "src": "7572:54:279" - } - ], - "name": "setVariablePoolBorrowRate", - "nameLocation": "7451:25:279", - "overrides": { - "id": 110290, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110289, - "name": "ISizeAdmin", - "nameLocations": ["7531:10:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111931, - "src": "7531:10:279" - } - ], - "src": "7522:20:279" - }, - "parameters": { - "id": 110288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110287, - "mutability": "mutable", - "name": "borrowRate", - "nameLocation": "7485:10:279", - "nodeType": "VariableDeclaration", - "scope": 110333, - "src": "7477:18:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 110286, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "7477:7:279", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "src": "7476:20:279" - }, - "returnParameters": { - "id": 110296, - "nodeType": "ParameterList", - "parameters": [], - "src": "7631:0:279" - }, - "scope": 111069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110346, - "nodeType": "FunctionDefinition", - "src": "7972:112:279", - "nodes": [], - "body": { - "id": 110345, - "nodeType": "Block", - "src": "8059:25:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 110342, - "name": "_pause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54979, - "src": "8069:6:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8069:8:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110344, - "nodeType": "ExpressionStatement", - "src": "8069:8:279" - } - ] - }, - "baseFunctions": [111926], - "documentation": { - "id": 110334, - "nodeType": "StructuredDocumentation", - "src": "7941:26:279", - "text": "@inheritdoc ISizeAdmin" - }, - "functionSelector": "8456cb59", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 110339, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109164, - "src": "8046:11:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 110340, - "kind": "modifierInvocation", - "modifierName": { - "id": 110338, - "name": "onlyRoleOrSizeFactoryHasRole", - "nameLocations": ["8017:28:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 110215, - "src": "8017:28:279" - }, - "nodeType": "ModifierInvocation", - "src": "8017:41:279" - } - ], - "name": "pause", - "nameLocation": "7981:5:279", - "overrides": { - "id": 110337, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110336, - "name": "ISizeAdmin", - "nameLocations": ["8005:10:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111931, - "src": "8005:10:279" - } - ], - "src": "7996:20:279" - }, - "parameters": { - "id": 110335, - "nodeType": "ParameterList", - "parameters": [], - "src": "7986:2:279" - }, - "returnParameters": { - "id": 110341, - "nodeType": "ParameterList", - "parameters": [], - "src": "8059:0:279" - }, - "scope": 111069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110359, - "nodeType": "FunctionDefinition", - "src": "8121:116:279", - "nodes": [], - "body": { - "id": 110358, - "nodeType": "Block", - "src": "8210:27:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 110355, - "name": "_unpause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55003, - "src": "8220:8:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 110356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8220:10:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110357, - "nodeType": "ExpressionStatement", - "src": "8220:10:279" - } - ] - }, - "baseFunctions": [111930], - "documentation": { - "id": 110347, - "nodeType": "StructuredDocumentation", - "src": "8090:26:279", - "text": "@inheritdoc ISizeAdmin" - }, - "functionSelector": "3f4ba83a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 110352, - "name": "PAUSER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109164, - "src": "8197:11:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 110353, - "kind": "modifierInvocation", - "modifierName": { - "id": 110351, - "name": "onlyRoleOrSizeFactoryHasRole", - "nameLocations": ["8168:28:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 110215, - "src": "8168:28:279" - }, - "nodeType": "ModifierInvocation", - "src": "8168:41:279" - } - ], - "name": "unpause", - "nameLocation": "8130:7:279", - "overrides": { - "id": 110350, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110349, - "name": "ISizeAdmin", - "nameLocations": ["8156:10:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111931, - "src": "8156:10:279" - } - ], - "src": "8147:20:279" - }, - "parameters": { - "id": 110348, - "nodeType": "ParameterList", - "parameters": [], - "src": "8137:2:279" - }, - "returnParameters": { - "id": 110354, - "nodeType": "ParameterList", - "parameters": [], - "src": "8210:0:279" - }, - "scope": 111069, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110381, - "nodeType": "FunctionDefinition", - "src": "8274:219:279", - "nodes": [], - "body": { - "id": 110380, - "nodeType": "Block", - "src": "8444:49:279", - "nodes": [], - "statements": [ - { - "expression": { - "id": 110378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 110373, - "name": "results", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110371, - "src": "8454:7:279", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 110376, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110363, - "src": "8480:5:279", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - ], - "expression": { - "id": 110374, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "8464:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110375, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8470:9:279", - "memberName": "multicall", - "nodeType": "MemberAccess", - "referencedDeclaration": 114558, - "src": "8464:15:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,bytes calldata[] calldata) returns (bytes memory[] memory)" - } - }, - "id": 110377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8464:22:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "src": "8454:32:279", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 110379, - "nodeType": "ExpressionStatement", - "src": "8454:32:279" - } - ] - }, - "baseFunctions": [111731], - "documentation": { - "id": 110360, - "nodeType": "StructuredDocumentation", - "src": "8243:26:279", - "text": "@inheritdoc IMulticall" - }, - "functionSelector": "ac9650d8", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110368, - "kind": "modifierInvocation", - "modifierName": { - "id": 110367, - "name": "whenNotPaused", - "nameLocations": ["8385:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "8385:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "8385:13:279" - } - ], - "name": "multicall", - "nameLocation": "8283:9:279", - "overrides": { - "id": 110366, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110365, - "name": "IMulticall", - "nameLocations": ["8365:10:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111732, - "src": "8365:10:279" - } - ], - "src": "8356:20:279" - }, - "parameters": { - "id": 110364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110363, - "mutability": "mutable", - "name": "_data", - "nameLocation": "8310:5:279", - "nodeType": "VariableDeclaration", - "scope": 110381, - "src": "8293:22:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 110361, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8293:5:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 110362, - "nodeType": "ArrayTypeName", - "src": "8293:7:279", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "8292:24:279" - }, - "returnParameters": { - "id": 110372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110371, - "mutability": "mutable", - "name": "results", - "nameLocation": "8431:7:279", - "nodeType": "VariableDeclaration", - "scope": 110381, - "src": "8416:22:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 110369, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8416:5:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 110370, - "nodeType": "ArrayTypeName", - "src": "8416:7:279", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "8415:24:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110399, - "nodeType": "FunctionDefinition", - "src": "8525:180:279", - "nodes": [], - "body": { - "id": 110398, - "nodeType": "Block", - "src": "8604:101:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110392, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110385, - "src": "8665:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DepositParams_$117451_calldata_ptr", - "typeString": "struct DepositParams calldata" - } - }, - { - "expression": { - "id": 110393, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8685:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8689:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "8685:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_DepositParams_$117451_calldata_ptr", - "typeString": "struct DepositParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110391, - "name": "DepositOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117457, - "src": "8632:23:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_DepositOnBehalfOfParams_$117457_storage_ptr_$", - "typeString": "type(struct DepositOnBehalfOfParams storage pointer)" - } - }, - "id": 110395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["8657:6:279", "8673:10:279"], - "names": ["params", "onBehalfOf"], - "nodeType": "FunctionCall", - "src": "8632:65:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr", - "typeString": "struct DepositOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr", - "typeString": "struct DepositOnBehalfOfParams memory" - } - ], - "id": 110390, - "name": "depositOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110425, - "src": "8614:17:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr_$returns$__$", - "typeString": "function (struct DepositOnBehalfOfParams memory)" - } - }, - "id": 110396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8614:84:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110397, - "nodeType": "ExpressionStatement", - "src": "8614:84:279" - } - ] - }, - "baseFunctions": [111799], - "documentation": { - "id": 110382, - "nodeType": "StructuredDocumentation", - "src": "8499:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "0cf8542f", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nameLocation": "8534:7:279", - "overrides": { - "id": 110388, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110387, - "name": "ISize", - "nameLocations": ["8597:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "8597:5:279" - } - ], - "src": "8588:15:279" - }, - "parameters": { - "id": 110386, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110385, - "mutability": "mutable", - "name": "params", - "nameLocation": "8565:6:279", - "nodeType": "VariableDeclaration", - "scope": 110399, - "src": "8542:29:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DepositParams_$117451_calldata_ptr", - "typeString": "struct DepositParams" - }, - "typeName": { - "id": 110384, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110383, - "name": "DepositParams", - "nameLocations": ["8542:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117451, - "src": "8542:13:279" - }, - "referencedDeclaration": 117451, - "src": "8542:13:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DepositParams_$117451_storage_ptr", - "typeString": "struct DepositParams" - } - }, - "visibility": "internal" - } - ], - "src": "8541:31:279" - }, - "returnParameters": { - "id": 110389, - "nodeType": "ParameterList", - "parameters": [], - "src": "8604:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110425, - "nodeType": "FunctionDefinition", - "src": "8741:256:279", - "nodes": [], - "body": { - "id": 110424, - "nodeType": "Block", - "src": "8913:84:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110415, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110403, - "src": "8945:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr", - "typeString": "struct DepositOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr", - "typeString": "struct DepositOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110412, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "8923:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110414, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8929:15:279", - "memberName": "validateDeposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 117602, - "src": "8923:21:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct DepositOnBehalfOfParams memory) view" - } - }, - "id": 110416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8923:29:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110417, - "nodeType": "ExpressionStatement", - "src": "8923:29:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110421, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110403, - "src": "8983:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr", - "typeString": "struct DepositOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr", - "typeString": "struct DepositOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110418, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "8962:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110420, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8968:14:279", - "memberName": "executeDeposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 117773, - "src": "8962:20:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct DepositOnBehalfOfParams memory)" - } - }, - "id": 110422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8962:28:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110423, - "nodeType": "ExpressionStatement", - "src": "8962:28:279" - } - ] - }, - "baseFunctions": [112119], - "documentation": { - "id": 110400, - "nodeType": "StructuredDocumentation", - "src": "8711:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "fa823af5", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110408, - "kind": "modifierInvocation", - "modifierName": { - "id": 110407, - "name": "nonReentrant", - "nameLocations": ["8874:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "8874:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "8874:12:279" - }, - { - "id": 110410, - "kind": "modifierInvocation", - "modifierName": { - "id": 110409, - "name": "whenNotPaused", - "nameLocations": ["8895:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "8895:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "8895:13:279" - } - ], - "name": "depositOnBehalfOf", - "nameLocation": "8750:17:279", - "overrides": { - "id": 110406, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110405, - "name": "ISizeV1_7", - "nameLocations": ["8855:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "8855:9:279" - } - ], - "src": "8846:19:279" - }, - "parameters": { - "id": 110404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110403, - "mutability": "mutable", - "name": "params", - "nameLocation": "8799:6:279", - "nodeType": "VariableDeclaration", - "scope": 110425, - "src": "8768:37:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DepositOnBehalfOfParams_$117457_memory_ptr", - "typeString": "struct DepositOnBehalfOfParams" - }, - "typeName": { - "id": 110402, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110401, - "name": "DepositOnBehalfOfParams", - "nameLocations": ["8768:23:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117457, - "src": "8768:23:279" - }, - "referencedDeclaration": 117457, - "src": "8768:23:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DepositOnBehalfOfParams_$117457_storage_ptr", - "typeString": "struct DepositOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "8767:39:279" - }, - "returnParameters": { - "id": 110411, - "nodeType": "ParameterList", - "parameters": [], - "src": "8913:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110443, - "nodeType": "FunctionDefinition", - "src": "9029:186:279", - "nodes": [], - "body": { - "id": 110442, - "nodeType": "Block", - "src": "9112:103:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110436, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110429, - "src": "9175:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawParams_$121982_calldata_ptr", - "typeString": "struct WithdrawParams calldata" - } - }, - { - "expression": { - "id": 110437, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9195:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9199:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9195:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_WithdrawParams_$121982_calldata_ptr", - "typeString": "struct WithdrawParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110435, - "name": "WithdrawOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121988, - "src": "9141:24:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_WithdrawOnBehalfOfParams_$121988_storage_ptr_$", - "typeString": "type(struct WithdrawOnBehalfOfParams storage pointer)" - } - }, - "id": 110439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["9167:6:279", "9183:10:279"], - "names": ["params", "onBehalfOf"], - "nodeType": "FunctionCall", - "src": "9141:66:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr", - "typeString": "struct WithdrawOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr", - "typeString": "struct WithdrawOnBehalfOfParams memory" - } - ], - "id": 110434, - "name": "withdrawOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110469, - "src": "9122:18:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr_$returns$__$", - "typeString": "function (struct WithdrawOnBehalfOfParams memory)" - } - }, - "id": 110440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9122:86:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110441, - "nodeType": "ExpressionStatement", - "src": "9122:86:279" - } - ] - }, - "baseFunctions": [111806], - "documentation": { - "id": 110426, - "nodeType": "StructuredDocumentation", - "src": "9003:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "2b4c9a20", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nameLocation": "9038:8:279", - "overrides": { - "id": 110432, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110431, - "name": "ISize", - "nameLocations": ["9105:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "9105:5:279" - } - ], - "src": "9096:15:279" - }, - "parameters": { - "id": 110430, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110429, - "mutability": "mutable", - "name": "params", - "nameLocation": "9071:6:279", - "nodeType": "VariableDeclaration", - "scope": 110443, - "src": "9047:30:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawParams_$121982_calldata_ptr", - "typeString": "struct WithdrawParams" - }, - "typeName": { - "id": 110428, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110427, - "name": "WithdrawParams", - "nameLocations": ["9047:14:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121982, - "src": "9047:14:279" - }, - "referencedDeclaration": 121982, - "src": "9047:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawParams_$121982_storage_ptr", - "typeString": "struct WithdrawParams" - } - }, - "visibility": "internal" - } - ], - "src": "9046:32:279" - }, - "returnParameters": { - "id": 110433, - "nodeType": "ParameterList", - "parameters": [], - "src": "9112:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110469, - "nodeType": "FunctionDefinition", - "src": "9251:284:279", - "nodes": [], - "body": { - "id": 110468, - "nodeType": "Block", - "src": "9433:102:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110459, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110447, - "src": "9466:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr", - "typeString": "struct WithdrawOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr", - "typeString": "struct WithdrawOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110456, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "9443:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110458, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9449:16:279", - "memberName": "validateWithdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 122098, - "src": "9443:22:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct WithdrawOnBehalfOfParams memory) view" - } - }, - "id": 110460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9443:38:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110461, - "nodeType": "ExpressionStatement", - "src": "9443:38:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110465, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110447, - "src": "9513:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr", - "typeString": "struct WithdrawOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr", - "typeString": "struct WithdrawOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110462, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "9491:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110464, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9497:15:279", - "memberName": "executeWithdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 122244, - "src": "9491:21:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct WithdrawOnBehalfOfParams memory)" - } - }, - "id": 110466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9491:37:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110467, - "nodeType": "ExpressionStatement", - "src": "9491:37:279" - } - ] - }, - "baseFunctions": [112126], - "documentation": { - "id": 110444, - "nodeType": "StructuredDocumentation", - "src": "9221:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "f54ae18b", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110452, - "kind": "modifierInvocation", - "modifierName": { - "id": 110451, - "name": "nonReentrant", - "nameLocations": ["9394:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "9394:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "9394:12:279" - }, - { - "id": 110454, - "kind": "modifierInvocation", - "modifierName": { - "id": 110453, - "name": "whenNotPaused", - "nameLocations": ["9415:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "9415:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "9415:13:279" - } - ], - "name": "withdrawOnBehalfOf", - "nameLocation": "9260:18:279", - "overrides": { - "id": 110450, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110449, - "name": "ISizeV1_7", - "nameLocations": ["9375:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "9375:9:279" - } - ], - "src": "9366:19:279" - }, - "parameters": { - "id": 110448, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110447, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "9311:14:279", - "nodeType": "VariableDeclaration", - "scope": 110469, - "src": "9279:46:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawOnBehalfOfParams_$121988_memory_ptr", - "typeString": "struct WithdrawOnBehalfOfParams" - }, - "typeName": { - "id": 110446, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110445, - "name": "WithdrawOnBehalfOfParams", - "nameLocations": ["9279:24:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121988, - "src": "9279:24:279" - }, - "referencedDeclaration": 121988, - "src": "9279:24:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_WithdrawOnBehalfOfParams_$121988_storage_ptr", - "typeString": "struct WithdrawOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "9278:48:279" - }, - "returnParameters": { - "id": 110455, - "nodeType": "ParameterList", - "parameters": [], - "src": "9433:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110487, - "nodeType": "FunctionDefinition", - "src": "9567:210:279", - "nodes": [], - "body": { - "id": 110486, - "nodeType": "Block", - "src": "9662:115:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110480, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110473, - "src": "9737:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditLimitParams_$115981_calldata_ptr", - "typeString": "struct BuyCreditLimitParams calldata" - } - }, - { - "expression": { - "id": 110481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9757:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9761:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "9757:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BuyCreditLimitParams_$115981_calldata_ptr", - "typeString": "struct BuyCreditLimitParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110479, - "name": "BuyCreditLimitOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115987, - "src": "9697:30:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_storage_ptr_$", - "typeString": "type(struct BuyCreditLimitOnBehalfOfParams storage pointer)" - } - }, - "id": 110483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["9729:6:279", "9745:10:279"], - "names": ["params", "onBehalfOf"], - "nodeType": "FunctionCall", - "src": "9697:72:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr", - "typeString": "struct BuyCreditLimitOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr", - "typeString": "struct BuyCreditLimitOnBehalfOfParams memory" - } - ], - "id": 110478, - "name": "buyCreditLimitOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110513, - "src": "9672:24:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr_$returns$__$", - "typeString": "function (struct BuyCreditLimitOnBehalfOfParams memory)" - } - }, - "id": 110484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9672:98:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110485, - "nodeType": "ExpressionStatement", - "src": "9672:98:279" - } - ] - }, - "baseFunctions": [111813], - "documentation": { - "id": 110470, - "nodeType": "StructuredDocumentation", - "src": "9541:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "3746f858", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "buyCreditLimit", - "nameLocation": "9576:14:279", - "overrides": { - "id": 110476, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110475, - "name": "ISize", - "nameLocations": ["9655:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "9655:5:279" - } - ], - "src": "9646:15:279" - }, - "parameters": { - "id": 110474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110473, - "mutability": "mutable", - "name": "params", - "nameLocation": "9621:6:279", - "nodeType": "VariableDeclaration", - "scope": 110487, - "src": "9591:36:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditLimitParams_$115981_calldata_ptr", - "typeString": "struct BuyCreditLimitParams" - }, - "typeName": { - "id": 110472, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110471, - "name": "BuyCreditLimitParams", - "nameLocations": ["9591:20:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 115981, - "src": "9591:20:279" - }, - "referencedDeclaration": 115981, - "src": "9591:20:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditLimitParams_$115981_storage_ptr", - "typeString": "struct BuyCreditLimitParams" - } - }, - "visibility": "internal" - } - ], - "src": "9590:38:279" - }, - "returnParameters": { - "id": 110477, - "nodeType": "ParameterList", - "parameters": [], - "src": "9662:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110513, - "nodeType": "FunctionDefinition", - "src": "9813:308:279", - "nodes": [], - "body": { - "id": 110512, - "nodeType": "Block", - "src": "10007:114:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110503, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110491, - "src": "10046:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr", - "typeString": "struct BuyCreditLimitOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr", - "typeString": "struct BuyCreditLimitOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110500, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "10017:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110502, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10023:22:279", - "memberName": "validateBuyCreditLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 116067, - "src": "10017:28:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct BuyCreditLimitOnBehalfOfParams memory) view" - } - }, - "id": 110504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10017:44:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110505, - "nodeType": "ExpressionStatement", - "src": "10017:44:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110509, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110491, - "src": "10099:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr", - "typeString": "struct BuyCreditLimitOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr", - "typeString": "struct BuyCreditLimitOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110506, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "10071:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110508, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10077:21:279", - "memberName": "executeBuyCreditLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 116124, - "src": "10071:27:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct BuyCreditLimitOnBehalfOfParams memory)" - } - }, - "id": 110510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10071:43:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110511, - "nodeType": "ExpressionStatement", - "src": "10071:43:279" - } - ] - }, - "baseFunctions": [112133], - "documentation": { - "id": 110488, - "nodeType": "StructuredDocumentation", - "src": "9783:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "53e043d4", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110496, - "kind": "modifierInvocation", - "modifierName": { - "id": 110495, - "name": "nonReentrant", - "nameLocations": ["9968:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "9968:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "9968:12:279" - }, - { - "id": 110498, - "kind": "modifierInvocation", - "modifierName": { - "id": 110497, - "name": "whenNotPaused", - "nameLocations": ["9989:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "9989:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "9989:13:279" - } - ], - "name": "buyCreditLimitOnBehalfOf", - "nameLocation": "9822:24:279", - "overrides": { - "id": 110494, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110493, - "name": "ISizeV1_7", - "nameLocations": ["9949:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "9949:9:279" - } - ], - "src": "9940:19:279" - }, - "parameters": { - "id": 110492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110491, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "9885:14:279", - "nodeType": "VariableDeclaration", - "scope": 110513, - "src": "9847:52:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_memory_ptr", - "typeString": "struct BuyCreditLimitOnBehalfOfParams" - }, - "typeName": { - "id": 110490, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110489, - "name": "BuyCreditLimitOnBehalfOfParams", - "nameLocations": ["9847:30:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 115987, - "src": "9847:30:279" - }, - "referencedDeclaration": 115987, - "src": "9847:30:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditLimitOnBehalfOfParams_$115987_storage_ptr", - "typeString": "struct BuyCreditLimitOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "9846:54:279" - }, - "returnParameters": { - "id": 110499, - "nodeType": "ParameterList", - "parameters": [], - "src": "10007:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110531, - "nodeType": "FunctionDefinition", - "src": "10153:214:279", - "nodes": [], - "body": { - "id": 110530, - "nodeType": "Block", - "src": "10250:117:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110524, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110517, - "src": "10327:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditLimitParams_$120032_calldata_ptr", - "typeString": "struct SellCreditLimitParams calldata" - } - }, - { - "expression": { - "id": 110525, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10347:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10351:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "10347:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SellCreditLimitParams_$120032_calldata_ptr", - "typeString": "struct SellCreditLimitParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110523, - "name": "SellCreditLimitOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120038, - "src": "10286:31:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SellCreditLimitOnBehalfOfParams_$120038_storage_ptr_$", - "typeString": "type(struct SellCreditLimitOnBehalfOfParams storage pointer)" - } - }, - "id": 110527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["10319:6:279", "10335:10:279"], - "names": ["params", "onBehalfOf"], - "nodeType": "FunctionCall", - "src": "10286:73:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr", - "typeString": "struct SellCreditLimitOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr", - "typeString": "struct SellCreditLimitOnBehalfOfParams memory" - } - ], - "id": 110522, - "name": "sellCreditLimitOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110557, - "src": "10260:25:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr_$returns$__$", - "typeString": "function (struct SellCreditLimitOnBehalfOfParams memory)" - } - }, - "id": 110528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10260:100:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110529, - "nodeType": "ExpressionStatement", - "src": "10260:100:279" - } - ] - }, - "baseFunctions": [111820], - "documentation": { - "id": 110514, - "nodeType": "StructuredDocumentation", - "src": "10127:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "ccd8d4d1", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sellCreditLimit", - "nameLocation": "10162:15:279", - "overrides": { - "id": 110520, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110519, - "name": "ISize", - "nameLocations": ["10243:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "10243:5:279" - } - ], - "src": "10234:15:279" - }, - "parameters": { - "id": 110518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110517, - "mutability": "mutable", - "name": "params", - "nameLocation": "10209:6:279", - "nodeType": "VariableDeclaration", - "scope": 110531, - "src": "10178:37:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditLimitParams_$120032_calldata_ptr", - "typeString": "struct SellCreditLimitParams" - }, - "typeName": { - "id": 110516, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110515, - "name": "SellCreditLimitParams", - "nameLocations": ["10178:21:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120032, - "src": "10178:21:279" - }, - "referencedDeclaration": 120032, - "src": "10178:21:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditLimitParams_$120032_storage_ptr", - "typeString": "struct SellCreditLimitParams" - } - }, - "visibility": "internal" - } - ], - "src": "10177:39:279" - }, - "returnParameters": { - "id": 110521, - "nodeType": "ParameterList", - "parameters": [], - "src": "10250:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110557, - "nodeType": "FunctionDefinition", - "src": "10403:312:279", - "nodes": [], - "body": { - "id": 110556, - "nodeType": "Block", - "src": "10599:116:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110547, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110535, - "src": "10639:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr", - "typeString": "struct SellCreditLimitOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr", - "typeString": "struct SellCreditLimitOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110544, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "10609:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110546, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10615:23:279", - "memberName": "validateSellCreditLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 120118, - "src": "10609:29:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SellCreditLimitOnBehalfOfParams memory) view" - } - }, - "id": 110548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10609:45:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110549, - "nodeType": "ExpressionStatement", - "src": "10609:45:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110553, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110535, - "src": "10693:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr", - "typeString": "struct SellCreditLimitOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr", - "typeString": "struct SellCreditLimitOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110550, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "10664:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110552, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10670:22:279", - "memberName": "executeSellCreditLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 120175, - "src": "10664:28:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SellCreditLimitOnBehalfOfParams memory)" - } - }, - "id": 110554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10664:44:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110555, - "nodeType": "ExpressionStatement", - "src": "10664:44:279" - } - ] - }, - "baseFunctions": [112140], - "documentation": { - "id": 110532, - "nodeType": "StructuredDocumentation", - "src": "10373:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "4fd9a8a5", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110540, - "kind": "modifierInvocation", - "modifierName": { - "id": 110539, - "name": "nonReentrant", - "nameLocations": ["10560:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "10560:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "10560:12:279" - }, - { - "id": 110542, - "kind": "modifierInvocation", - "modifierName": { - "id": 110541, - "name": "whenNotPaused", - "nameLocations": ["10581:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "10581:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "10581:13:279" - } - ], - "name": "sellCreditLimitOnBehalfOf", - "nameLocation": "10412:25:279", - "overrides": { - "id": 110538, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110537, - "name": "ISizeV1_7", - "nameLocations": ["10541:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "10541:9:279" - } - ], - "src": "10532:19:279" - }, - "parameters": { - "id": 110536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110535, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "10477:14:279", - "nodeType": "VariableDeclaration", - "scope": 110557, - "src": "10438:53:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditLimitOnBehalfOfParams_$120038_memory_ptr", - "typeString": "struct SellCreditLimitOnBehalfOfParams" - }, - "typeName": { - "id": 110534, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110533, - "name": "SellCreditLimitOnBehalfOfParams", - "nameLocations": ["10438:31:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120038, - "src": "10438:31:279" - }, - "referencedDeclaration": 120038, - "src": "10438:31:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditLimitOnBehalfOfParams_$120038_storage_ptr", - "typeString": "struct SellCreditLimitOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "10437:55:279" - }, - "returnParameters": { - "id": 110543, - "nodeType": "ParameterList", - "parameters": [], - "src": "10599:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110577, - "nodeType": "FunctionDefinition", - "src": "10747:259:279", - "nodes": [], - "body": { - "id": 110576, - "nodeType": "Block", - "src": "10844:162:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110568, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110561, - "src": "10934:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketParams_$116172_calldata_ptr", - "typeString": "struct BuyCreditMarketParams calldata" - } - }, - { - "expression": { - "id": 110569, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10954:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10958:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "10954:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 110571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10977:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10981:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "10977:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BuyCreditMarketParams_$116172_calldata_ptr", - "typeString": "struct BuyCreditMarketParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110567, - "name": "BuyCreditMarketOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116180, - "src": "10893:31:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_storage_ptr_$", - "typeString": "type(struct BuyCreditMarketOnBehalfOfParams storage pointer)" - } - }, - "id": 110573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "10926:6:279", - "10942:10:279", - "10966:9:279" - ], - "names": ["params", "onBehalfOf", "recipient"], - "nodeType": "FunctionCall", - "src": "10893:96:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams memory" - } - ], - "id": 110566, - "name": "buyCreditMarketOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110618, - "src": "10854:25:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr_$returns$__$", - "typeString": "function (struct BuyCreditMarketOnBehalfOfParams memory)" - } - }, - "id": 110574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10854:145:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110575, - "nodeType": "ExpressionStatement", - "src": "10854:145:279" - } - ] - }, - "baseFunctions": [111827], - "documentation": { - "id": 110558, - "nodeType": "StructuredDocumentation", - "src": "10721:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "e236052b", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "buyCreditMarket", - "nameLocation": "10756:15:279", - "overrides": { - "id": 110564, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110563, - "name": "ISize", - "nameLocations": ["10837:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "10837:5:279" - } - ], - "src": "10828:15:279" - }, - "parameters": { - "id": 110562, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110561, - "mutability": "mutable", - "name": "params", - "nameLocation": "10803:6:279", - "nodeType": "VariableDeclaration", - "scope": 110577, - "src": "10772:37:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketParams_$116172_calldata_ptr", - "typeString": "struct BuyCreditMarketParams" - }, - "typeName": { - "id": 110560, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110559, - "name": "BuyCreditMarketParams", - "nameLocations": ["10772:21:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 116172, - "src": "10772:21:279" - }, - "referencedDeclaration": 116172, - "src": "10772:21:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketParams_$116172_storage_ptr", - "typeString": "struct BuyCreditMarketParams" - } - }, - "visibility": "internal" - } - ], - "src": "10771:39:279" - }, - "returnParameters": { - "id": 110565, - "nodeType": "ParameterList", - "parameters": [], - "src": "10844:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110618, - "nodeType": "FunctionDefinition", - "src": "11042:485:279", - "nodes": [], - "body": { - "id": 110617, - "nodeType": "Block", - "src": "11238:289:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110593, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110581, - "src": "11278:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110590, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "11248:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110592, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11254:23:279", - "memberName": "validateBuyCreditMarket", - "nodeType": "MemberAccess", - "referencedDeclaration": 116503, - "src": "11248:29:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct BuyCreditMarketOnBehalfOfParams memory) view" - } - }, - "id": 110594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11248:45:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110595, - "nodeType": "ExpressionStatement", - "src": "11248:45:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110599, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110581, - "src": "11332:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110596, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "11303:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110598, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11309:22:279", - "memberName": "executeBuyCreditMarket", - "nodeType": "MemberAccess", - "referencedDeclaration": 116863, - "src": "11303:28:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct BuyCreditMarketOnBehalfOfParams memory)" - } - }, - "id": 110600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11303:44:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110601, - "nodeType": "ExpressionStatement", - "src": "11303:44:279" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 110606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 110602, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110581, - "src": "11361:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams memory" - } - }, - "id": 110603, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11376:6:279", - "memberName": "params", - "nodeType": "MemberAccess", - "referencedDeclaration": 116175, - "src": "11361:21:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketParams_$116172_memory_ptr", - "typeString": "struct BuyCreditMarketParams memory" - } - }, - "id": 110604, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11383:16:279", - "memberName": "creditPositionId", - "nodeType": "MemberAccess", - "referencedDeclaration": 116157, - "src": "11361:38:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 110605, - "name": "RESERVED_ID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113961, - "src": "11403:11:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11361:53:279", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 110616, - "nodeType": "IfStatement", - "src": "11357:164:279", - "trueBody": { - "id": 110615, - "nodeType": "Block", - "src": "11416:105:279", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "expression": { - "id": 110610, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110581, - "src": "11479:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams memory" - } - }, - "id": 110611, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11494:6:279", - "memberName": "params", - "nodeType": "MemberAccess", - "referencedDeclaration": 116175, - "src": "11479:21:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketParams_$116172_memory_ptr", - "typeString": "struct BuyCreditMarketParams memory" - } - }, - "id": 110612, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11501:8:279", - "memberName": "borrower", - "nodeType": "MemberAccess", - "referencedDeclaration": 116155, - "src": "11479:30:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 110607, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "11430:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110609, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11436:42:279", - "memberName": "validateUserIsNotBelowOpeningLimitBorrowCR", - "nodeType": "MemberAccess", - "referencedDeclaration": 115537, - "src": "11430:48:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,address) view" - } - }, - "id": 110613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11430:80:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110614, - "nodeType": "ExpressionStatement", - "src": "11430:80:279" - } - ] - } - } - ] - }, - "baseFunctions": [112147], - "documentation": { - "id": 110578, - "nodeType": "StructuredDocumentation", - "src": "11012:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "834dafb5", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110586, - "kind": "modifierInvocation", - "modifierName": { - "id": 110585, - "name": "nonReentrant", - "nameLocations": ["11199:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "11199:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "11199:12:279" - }, - { - "id": 110588, - "kind": "modifierInvocation", - "modifierName": { - "id": 110587, - "name": "whenNotPaused", - "nameLocations": ["11220:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "11220:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "11220:13:279" - } - ], - "name": "buyCreditMarketOnBehalfOf", - "nameLocation": "11051:25:279", - "overrides": { - "id": 110584, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110583, - "name": "ISizeV1_7", - "nameLocations": ["11180:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "11180:9:279" - } - ], - "src": "11171:19:279" - }, - "parameters": { - "id": 110582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110581, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "11116:14:279", - "nodeType": "VariableDeclaration", - "scope": 110618, - "src": "11077:53:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_memory_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams" - }, - "typeName": { - "id": 110580, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110579, - "name": "BuyCreditMarketOnBehalfOfParams", - "nameLocations": ["11077:31:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 116180, - "src": "11077:31:279" - }, - "referencedDeclaration": 116180, - "src": "11077:31:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BuyCreditMarketOnBehalfOfParams_$116180_storage_ptr", - "typeString": "struct BuyCreditMarketOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "11076:55:279" - }, - "returnParameters": { - "id": 110589, - "nodeType": "ParameterList", - "parameters": [], - "src": "11238:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110638, - "nodeType": "FunctionDefinition", - "src": "11559:261:279", - "nodes": [], - "body": { - "id": 110637, - "nodeType": "Block", - "src": "11656:164:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110629, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110622, - "src": "11748:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketParams_$120222_memory_ptr", - "typeString": "struct SellCreditMarketParams memory" - } - }, - { - "expression": { - "id": 110630, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "11768:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11772:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "11768:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 110632, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "11791:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11795:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "11791:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SellCreditMarketParams_$120222_memory_ptr", - "typeString": "struct SellCreditMarketParams memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110628, - "name": "SellCreditMarketOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120230, - "src": "11706:32:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SellCreditMarketOnBehalfOfParams_$120230_storage_ptr_$", - "typeString": "type(struct SellCreditMarketOnBehalfOfParams storage pointer)" - } - }, - "id": 110634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "11740:6:279", - "11756:10:279", - "11780:9:279" - ], - "names": ["params", "onBehalfOf", "recipient"], - "nodeType": "FunctionCall", - "src": "11706:97:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams memory" - } - ], - "id": 110627, - "name": "sellCreditMarketOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110678, - "src": "11666:26:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr_$returns$__$", - "typeString": "function (struct SellCreditMarketOnBehalfOfParams memory)" - } - }, - "id": 110635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11666:147:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110636, - "nodeType": "ExpressionStatement", - "src": "11666:147:279" - } - ] - }, - "baseFunctions": [111834], - "documentation": { - "id": 110619, - "nodeType": "StructuredDocumentation", - "src": "11533:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "8ea68d7e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sellCreditMarket", - "nameLocation": "11568:16:279", - "overrides": { - "id": 110625, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110624, - "name": "ISize", - "nameLocations": ["11649:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "11649:5:279" - } - ], - "src": "11640:15:279" - }, - "parameters": { - "id": 110623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110622, - "mutability": "mutable", - "name": "params", - "nameLocation": "11615:6:279", - "nodeType": "VariableDeclaration", - "scope": 110638, - "src": "11585:36:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketParams_$120222_memory_ptr", - "typeString": "struct SellCreditMarketParams" - }, - "typeName": { - "id": 110621, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110620, - "name": "SellCreditMarketParams", - "nameLocations": ["11585:22:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120222, - "src": "11585:22:279" - }, - "referencedDeclaration": 120222, - "src": "11585:22:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketParams_$120222_storage_ptr", - "typeString": "struct SellCreditMarketParams" - } - }, - "visibility": "internal" - } - ], - "src": "11584:38:279" - }, - "returnParameters": { - "id": 110626, - "nodeType": "ParameterList", - "parameters": [], - "src": "11656:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110678, - "nodeType": "FunctionDefinition", - "src": "11856:484:279", - "nodes": [], - "body": { - "id": 110677, - "nodeType": "Block", - "src": "12054:286:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110654, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110642, - "src": "12095:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110651, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "12064:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110653, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12070:24:279", - "memberName": "validateSellCreditMarket", - "nodeType": "MemberAccess", - "referencedDeclaration": 120531, - "src": "12064:30:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SellCreditMarketOnBehalfOfParams memory) view" - } - }, - "id": 110655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12064:46:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110656, - "nodeType": "ExpressionStatement", - "src": "12064:46:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110660, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110642, - "src": "12150:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110657, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "12120:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12126:23:279", - "memberName": "executeSellCreditMarket", - "nodeType": "MemberAccess", - "referencedDeclaration": 120881, - "src": "12120:29:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SellCreditMarketOnBehalfOfParams memory)" - } - }, - "id": 110661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12120:45:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110662, - "nodeType": "ExpressionStatement", - "src": "12120:45:279" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 110667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 110663, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110642, - "src": "12179:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams memory" - } - }, - "id": 110664, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12194:6:279", - "memberName": "params", - "nodeType": "MemberAccess", - "referencedDeclaration": 120225, - "src": "12179:21:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketParams_$120222_memory_ptr", - "typeString": "struct SellCreditMarketParams memory" - } - }, - "id": 110665, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12201:16:279", - "memberName": "creditPositionId", - "nodeType": "MemberAccess", - "referencedDeclaration": 120207, - "src": "12179:38:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 110666, - "name": "RESERVED_ID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113961, - "src": "12221:11:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12179:53:279", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 110676, - "nodeType": "IfStatement", - "src": "12175:159:279", - "trueBody": { - "id": 110675, - "nodeType": "Block", - "src": "12234:100:279", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 110671, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110642, - "src": "12297:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams memory" - } - }, - "id": 110672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12312:10:279", - "memberName": "onBehalfOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 120227, - "src": "12297:25:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 110668, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "12248:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110670, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12254:42:279", - "memberName": "validateUserIsNotBelowOpeningLimitBorrowCR", - "nodeType": "MemberAccess", - "referencedDeclaration": 115537, - "src": "12248:48:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,address) view" - } - }, - "id": 110673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12248:75:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110674, - "nodeType": "ExpressionStatement", - "src": "12248:75:279" - } - ] - } - } - ] - }, - "baseFunctions": [112154], - "documentation": { - "id": 110639, - "nodeType": "StructuredDocumentation", - "src": "11826:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "3962a686", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110647, - "kind": "modifierInvocation", - "modifierName": { - "id": 110646, - "name": "nonReentrant", - "nameLocations": ["12015:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "12015:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "12015:12:279" - }, - { - "id": 110649, - "kind": "modifierInvocation", - "modifierName": { - "id": 110648, - "name": "whenNotPaused", - "nameLocations": ["12036:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "12036:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "12036:13:279" - } - ], - "name": "sellCreditMarketOnBehalfOf", - "nameLocation": "11865:26:279", - "overrides": { - "id": 110645, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110644, - "name": "ISizeV1_7", - "nameLocations": ["11996:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "11996:9:279" - } - ], - "src": "11987:19:279" - }, - "parameters": { - "id": 110643, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110642, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "11932:14:279", - "nodeType": "VariableDeclaration", - "scope": 110678, - "src": "11892:54:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_memory_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams" - }, - "typeName": { - "id": 110641, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110640, - "name": "SellCreditMarketOnBehalfOfParams", - "nameLocations": ["11892:32:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120230, - "src": "11892:32:279" - }, - "referencedDeclaration": 120230, - "src": "11892:32:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SellCreditMarketOnBehalfOfParams_$120230_storage_ptr", - "typeString": "struct SellCreditMarketOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "11891:56:279" - }, - "returnParameters": { - "id": 110650, - "nodeType": "ParameterList", - "parameters": [], - "src": "12054:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110704, - "nodeType": "FunctionDefinition", - "src": "12372:184:279", - "nodes": [], - "body": { - "id": 110703, - "nodeType": "Block", - "src": "12476:80:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110694, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110682, - "src": "12506:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RepayParams_$119616_calldata_ptr", - "typeString": "struct RepayParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RepayParams_$119616_calldata_ptr", - "typeString": "struct RepayParams calldata" - } - ], - "expression": { - "id": 110691, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "12486:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110693, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12492:13:279", - "memberName": "validateRepay", - "nodeType": "MemberAccess", - "referencedDeclaration": 119679, - "src": "12486:19:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_RepayParams_$119616_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct RepayParams memory) view" - } - }, - "id": 110695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12486:27:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110696, - "nodeType": "ExpressionStatement", - "src": "12486:27:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110700, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110682, - "src": "12542:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RepayParams_$119616_calldata_ptr", - "typeString": "struct RepayParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RepayParams_$119616_calldata_ptr", - "typeString": "struct RepayParams calldata" - } - ], - "expression": { - "id": 110697, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "12523:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110699, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12529:12:279", - "memberName": "executeRepay", - "nodeType": "MemberAccess", - "referencedDeclaration": 119746, - "src": "12523:18:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_RepayParams_$119616_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct RepayParams memory)" - } - }, - "id": 110701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12523:26:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110702, - "nodeType": "ExpressionStatement", - "src": "12523:26:279" - } - ] - }, - "baseFunctions": [111841], - "documentation": { - "id": 110679, - "nodeType": "StructuredDocumentation", - "src": "12346:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "7f417c06", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110687, - "kind": "modifierInvocation", - "modifierName": { - "id": 110686, - "name": "nonReentrant", - "nameLocations": ["12449:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "12449:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "12449:12:279" - }, - { - "id": 110689, - "kind": "modifierInvocation", - "modifierName": { - "id": 110688, - "name": "whenNotPaused", - "nameLocations": ["12462:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "12462:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "12462:13:279" - } - ], - "name": "repay", - "nameLocation": "12381:5:279", - "overrides": { - "id": 110685, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110684, - "name": "ISize", - "nameLocations": ["12442:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "12442:5:279" - } - ], - "src": "12433:15:279" - }, - "parameters": { - "id": 110683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110682, - "mutability": "mutable", - "name": "params", - "nameLocation": "12408:6:279", - "nodeType": "VariableDeclaration", - "scope": 110704, - "src": "12387:27:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RepayParams_$119616_calldata_ptr", - "typeString": "struct RepayParams" - }, - "typeName": { - "id": 110681, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110680, - "name": "RepayParams", - "nameLocations": ["12387:11:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 119616, - "src": "12387:11:279" - }, - "referencedDeclaration": 119616, - "src": "12387:11:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RepayParams_$119616_storage_ptr", - "typeString": "struct RepayParams" - } - }, - "visibility": "internal" - } - ], - "src": "12386:29:279" - }, - "returnParameters": { - "id": 110690, - "nodeType": "ParameterList", - "parameters": [], - "src": "12476:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110730, - "nodeType": "FunctionDefinition", - "src": "12588:184:279", - "nodes": [], - "body": { - "id": 110729, - "nodeType": "Block", - "src": "12692:80:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110720, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110708, - "src": "12722:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClaimParams_$116886_calldata_ptr", - "typeString": "struct ClaimParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ClaimParams_$116886_calldata_ptr", - "typeString": "struct ClaimParams calldata" - } - ], - "expression": { - "id": 110717, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "12702:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110719, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12708:13:279", - "memberName": "validateClaim", - "nodeType": "MemberAccess", - "referencedDeclaration": 116949, - "src": "12702:19:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_ClaimParams_$116886_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct ClaimParams memory) view" - } - }, - "id": 110721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12702:27:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110722, - "nodeType": "ExpressionStatement", - "src": "12702:27:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110726, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110708, - "src": "12758:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClaimParams_$116886_calldata_ptr", - "typeString": "struct ClaimParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ClaimParams_$116886_calldata_ptr", - "typeString": "struct ClaimParams calldata" - } - ], - "expression": { - "id": 110723, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "12739:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110725, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12745:12:279", - "memberName": "executeClaim", - "nodeType": "MemberAccess", - "referencedDeclaration": 117027, - "src": "12739:18:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_ClaimParams_$116886_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct ClaimParams memory)" - } - }, - "id": 110727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12739:26:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110728, - "nodeType": "ExpressionStatement", - "src": "12739:26:279" - } - ] - }, - "baseFunctions": [111848], - "documentation": { - "id": 110705, - "nodeType": "StructuredDocumentation", - "src": "12562:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "f45bf01c", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110713, - "kind": "modifierInvocation", - "modifierName": { - "id": 110712, - "name": "nonReentrant", - "nameLocations": ["12665:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "12665:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "12665:12:279" - }, - { - "id": 110715, - "kind": "modifierInvocation", - "modifierName": { - "id": 110714, - "name": "whenNotPaused", - "nameLocations": ["12678:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "12678:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "12678:13:279" - } - ], - "name": "claim", - "nameLocation": "12597:5:279", - "overrides": { - "id": 110711, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110710, - "name": "ISize", - "nameLocations": ["12658:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "12658:5:279" - } - ], - "src": "12649:15:279" - }, - "parameters": { - "id": 110709, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110708, - "mutability": "mutable", - "name": "params", - "nameLocation": "12624:6:279", - "nodeType": "VariableDeclaration", - "scope": 110730, - "src": "12603:27:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClaimParams_$116886_calldata_ptr", - "typeString": "struct ClaimParams" - }, - "typeName": { - "id": 110707, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110706, - "name": "ClaimParams", - "nameLocations": ["12603:11:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 116886, - "src": "12603:11:279" - }, - "referencedDeclaration": 116886, - "src": "12603:11:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClaimParams_$116886_storage_ptr", - "typeString": "struct ClaimParams" - } - }, - "visibility": "internal" - } - ], - "src": "12602:29:279" - }, - "returnParameters": { - "id": 110716, - "nodeType": "ParameterList", - "parameters": [], - "src": "12692:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110766, - "nodeType": "FunctionDefinition", - "src": "12804:424:279", - "nodes": [], - "body": { - "id": 110765, - "nodeType": "Block", - "src": "13018:210:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110748, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110734, - "src": "13052:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateParams_$118627_calldata_ptr", - "typeString": "struct LiquidateParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_LiquidateParams_$118627_calldata_ptr", - "typeString": "struct LiquidateParams calldata" - } - ], - "expression": { - "id": 110745, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "13028:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110747, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13034:17:279", - "memberName": "validateLiquidate", - "nodeType": "MemberAccess", - "referencedDeclaration": 118706, - "src": "13028:23:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_LiquidateParams_$118627_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct LiquidateParams memory) view" - } - }, - "id": 110749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13028:31:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110750, - "nodeType": "ExpressionStatement", - "src": "13028:31:279" - }, - { - "expression": { - "id": 110756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 110751, - "name": "liquidatorProfitCollateralToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110743, - "src": "13069:31:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 110754, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110734, - "src": "13126:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateParams_$118627_calldata_ptr", - "typeString": "struct LiquidateParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_LiquidateParams_$118627_calldata_ptr", - "typeString": "struct LiquidateParams calldata" - } - ], - "expression": { - "id": 110752, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "13103:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110753, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13109:16:279", - "memberName": "executeLiquidate", - "nodeType": "MemberAccess", - "referencedDeclaration": 118958, - "src": "13103:22:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_LiquidateParams_$118627_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct LiquidateParams memory) returns (uint256)" - } - }, - "id": 110755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13103:30:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13069:64:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 110757, - "nodeType": "ExpressionStatement", - "src": "13069:64:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110761, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110734, - "src": "13181:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateParams_$118627_calldata_ptr", - "typeString": "struct LiquidateParams calldata" - } - }, - { - "id": 110762, - "name": "liquidatorProfitCollateralToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110743, - "src": "13189:31:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_LiquidateParams_$118627_calldata_ptr", - "typeString": "struct LiquidateParams calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 110758, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "13143:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110760, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13149:31:279", - "memberName": "validateMinimumCollateralProfit", - "nodeType": "MemberAccess", - "referencedDeclaration": 118733, - "src": "13143:37:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_State_$111213_storage_ptr_$_t_struct$_LiquidateParams_$118627_memory_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct LiquidateParams memory,uint256) pure" - } - }, - "id": 110763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13143:78:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110764, - "nodeType": "ExpressionStatement", - "src": "13143:78:279" - } - ] - }, - "baseFunctions": [111857], - "documentation": { - "id": 110731, - "nodeType": "StructuredDocumentation", - "src": "12778:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "e05001f5", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110739, - "kind": "modifierInvocation", - "modifierName": { - "id": 110738, - "name": "nonReentrant", - "nameLocations": ["12921:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "12921:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "12921:12:279" - }, - { - "id": 110741, - "kind": "modifierInvocation", - "modifierName": { - "id": 110740, - "name": "whenNotPaused", - "nameLocations": ["12942:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "12942:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "12942:13:279" - } - ], - "name": "liquidate", - "nameLocation": "12813:9:279", - "overrides": { - "id": 110737, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110736, - "name": "ISize", - "nameLocations": ["12906:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "12906:5:279" - } - ], - "src": "12897:15:279" - }, - "parameters": { - "id": 110735, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110734, - "mutability": "mutable", - "name": "params", - "nameLocation": "12848:6:279", - "nodeType": "VariableDeclaration", - "scope": 110766, - "src": "12823:31:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateParams_$118627_calldata_ptr", - "typeString": "struct LiquidateParams" - }, - "typeName": { - "id": 110733, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110732, - "name": "LiquidateParams", - "nameLocations": ["12823:15:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 118627, - "src": "12823:15:279" - }, - "referencedDeclaration": 118627, - "src": "12823:15:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateParams_$118627_storage_ptr", - "typeString": "struct LiquidateParams" - } - }, - "visibility": "internal" - } - ], - "src": "12822:33:279" - }, - "returnParameters": { - "id": 110744, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110743, - "mutability": "mutable", - "name": "liquidatorProfitCollateralToken", - "nameLocation": "12981:31:279", - "nodeType": "VariableDeclaration", - "scope": 110766, - "src": "12973:39:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12973:7:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12972:41:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110786, - "nodeType": "FunctionDefinition", - "src": "13260:251:279", - "nodes": [], - "body": { - "id": 110785, - "nodeType": "Block", - "src": "13353:158:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110777, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110770, - "src": "13439:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SelfLiquidateParams_$119768_calldata_ptr", - "typeString": "struct SelfLiquidateParams calldata" - } - }, - { - "expression": { - "id": 110778, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13459:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13463:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13459:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 110780, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13482:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13486:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13482:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SelfLiquidateParams_$119768_calldata_ptr", - "typeString": "struct SelfLiquidateParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110776, - "name": "SelfLiquidateOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119776, - "src": "13400:29:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SelfLiquidateOnBehalfOfParams_$119776_storage_ptr_$", - "typeString": "type(struct SelfLiquidateOnBehalfOfParams storage pointer)" - } - }, - "id": 110782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "13431:6:279", - "13447:10:279", - "13471:9:279" - ], - "names": ["params", "onBehalfOf", "recipient"], - "nodeType": "FunctionCall", - "src": "13400:94:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr", - "typeString": "struct SelfLiquidateOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr", - "typeString": "struct SelfLiquidateOnBehalfOfParams memory" - } - ], - "id": 110775, - "name": "selfLiquidateOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110812, - "src": "13363:23:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr_$returns$__$", - "typeString": "function (struct SelfLiquidateOnBehalfOfParams memory)" - } - }, - "id": 110783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13363:141:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110784, - "nodeType": "ExpressionStatement", - "src": "13363:141:279" - } - ] - }, - "baseFunctions": [111864], - "documentation": { - "id": 110767, - "nodeType": "StructuredDocumentation", - "src": "13234:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "fd17174a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "selfLiquidate", - "nameLocation": "13269:13:279", - "overrides": { - "id": 110773, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110772, - "name": "ISize", - "nameLocations": ["13346:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "13346:5:279" - } - ], - "src": "13337:15:279" - }, - "parameters": { - "id": 110771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110770, - "mutability": "mutable", - "name": "params", - "nameLocation": "13312:6:279", - "nodeType": "VariableDeclaration", - "scope": 110786, - "src": "13283:35:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SelfLiquidateParams_$119768_calldata_ptr", - "typeString": "struct SelfLiquidateParams" - }, - "typeName": { - "id": 110769, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110768, - "name": "SelfLiquidateParams", - "nameLocations": ["13283:19:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 119768, - "src": "13283:19:279" - }, - "referencedDeclaration": 119768, - "src": "13283:19:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SelfLiquidateParams_$119768_storage_ptr", - "typeString": "struct SelfLiquidateParams" - } - }, - "visibility": "internal" - } - ], - "src": "13282:37:279" - }, - "returnParameters": { - "id": 110774, - "nodeType": "ParameterList", - "parameters": [], - "src": "13353:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110812, - "nodeType": "FunctionDefinition", - "src": "13547:304:279", - "nodes": [], - "body": { - "id": 110811, - "nodeType": "Block", - "src": "13739:112:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110802, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110790, - "src": "13777:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr", - "typeString": "struct SelfLiquidateOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr", - "typeString": "struct SelfLiquidateOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110799, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "13749:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13755:21:279", - "memberName": "validateSelfLiquidate", - "nodeType": "MemberAccess", - "referencedDeclaration": 119923, - "src": "13749:27:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SelfLiquidateOnBehalfOfParams memory) view" - } - }, - "id": 110803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13749:43:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110804, - "nodeType": "ExpressionStatement", - "src": "13749:43:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110808, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110790, - "src": "13829:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr", - "typeString": "struct SelfLiquidateOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr", - "typeString": "struct SelfLiquidateOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110805, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "13802:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110807, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13808:20:279", - "memberName": "executeSelfLiquidate", - "nodeType": "MemberAccess", - "referencedDeclaration": 120010, - "src": "13802:26:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SelfLiquidateOnBehalfOfParams memory)" - } - }, - "id": 110809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13802:42:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110810, - "nodeType": "ExpressionStatement", - "src": "13802:42:279" - } - ] - }, - "baseFunctions": [112161], - "documentation": { - "id": 110787, - "nodeType": "StructuredDocumentation", - "src": "13517:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "536b9c79", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110795, - "kind": "modifierInvocation", - "modifierName": { - "id": 110794, - "name": "nonReentrant", - "nameLocations": ["13700:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "13700:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "13700:12:279" - }, - { - "id": 110797, - "kind": "modifierInvocation", - "modifierName": { - "id": 110796, - "name": "whenNotPaused", - "nameLocations": ["13721:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "13721:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "13721:13:279" - } - ], - "name": "selfLiquidateOnBehalfOf", - "nameLocation": "13556:23:279", - "overrides": { - "id": 110793, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110792, - "name": "ISizeV1_7", - "nameLocations": ["13681:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "13681:9:279" - } - ], - "src": "13672:19:279" - }, - "parameters": { - "id": 110791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110790, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "13617:14:279", - "nodeType": "VariableDeclaration", - "scope": 110812, - "src": "13580:51:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SelfLiquidateOnBehalfOfParams_$119776_memory_ptr", - "typeString": "struct SelfLiquidateOnBehalfOfParams" - }, - "typeName": { - "id": 110789, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110788, - "name": "SelfLiquidateOnBehalfOfParams", - "nameLocations": ["13580:29:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 119776, - "src": "13580:29:279" - }, - "referencedDeclaration": 119776, - "src": "13580:29:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SelfLiquidateOnBehalfOfParams_$119776_storage_ptr", - "typeString": "struct SelfLiquidateOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "13579:53:279" - }, - "returnParameters": { - "id": 110798, - "nodeType": "ParameterList", - "parameters": [], - "src": "13739:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110862, - "nodeType": "FunctionDefinition", - "src": "13883:677:279", - "nodes": [], - "body": { - "id": 110861, - "nodeType": "Block", - "src": "14214:346:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110835, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110816, - "src": "14263:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_calldata_ptr", - "typeString": "struct LiquidateWithReplacementParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_calldata_ptr", - "typeString": "struct LiquidateWithReplacementParams calldata" - } - ], - "expression": { - "id": 110832, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "14224:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110834, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14230:32:279", - "memberName": "validateLiquidateWithReplacement", - "nodeType": "MemberAccess", - "referencedDeclaration": 119166, - "src": "14224:38:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_LiquidateWithReplacementParams_$118999_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct LiquidateWithReplacementParams memory) view" - } - }, - "id": 110836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14224:46:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110837, - "nodeType": "ExpressionStatement", - "src": "14224:46:279" - }, - { - "expression": { - "id": 110845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "id": 110838, - "name": "liquidatorProfitCollateralToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110828, - "src": "14281:31:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 110839, - "name": "liquidatorProfitBorrowToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110830, - "src": "14314:27:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 110840, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "14280:62:279", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 110843, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110816, - "src": "14383:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_calldata_ptr", - "typeString": "struct LiquidateWithReplacementParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_calldata_ptr", - "typeString": "struct LiquidateWithReplacementParams calldata" - } - ], - "expression": { - "id": 110841, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "14345:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110842, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14351:31:279", - "memberName": "executeLiquidateWithReplacement", - "nodeType": "MemberAccess", - "referencedDeclaration": 119377, - "src": "14345:37:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_LiquidateWithReplacementParams_$118999_memory_ptr_$returns$_t_uint256_$_t_uint256_$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct LiquidateWithReplacementParams memory) returns (uint256,uint256)" - } - }, - "id": 110844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14345:45:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "14280:110:279", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110846, - "nodeType": "ExpressionStatement", - "src": "14280:110:279" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 110850, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110816, - "src": "14449:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_calldata_ptr", - "typeString": "struct LiquidateWithReplacementParams calldata" - } - }, - "id": 110851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14456:8:279", - "memberName": "borrower", - "nodeType": "MemberAccess", - "referencedDeclaration": 118988, - "src": "14449:15:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 110847, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "14400:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110849, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14406:42:279", - "memberName": "validateUserIsNotBelowOpeningLimitBorrowCR", - "nodeType": "MemberAccess", - "referencedDeclaration": 115537, - "src": "14400:48:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,address) view" - } - }, - "id": 110852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14400:65:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110853, - "nodeType": "ExpressionStatement", - "src": "14400:65:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110857, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110816, - "src": "14513:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_calldata_ptr", - "typeString": "struct LiquidateWithReplacementParams calldata" - } - }, - { - "id": 110858, - "name": "liquidatorProfitCollateralToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110828, - "src": "14521:31:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_calldata_ptr", - "typeString": "struct LiquidateWithReplacementParams calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 110854, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "14475:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110856, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14481:31:279", - "memberName": "validateMinimumCollateralProfit", - "nodeType": "MemberAccess", - "referencedDeclaration": 119194, - "src": "14475:37:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_State_$111213_storage_ptr_$_t_struct$_LiquidateWithReplacementParams_$118999_memory_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct LiquidateWithReplacementParams memory,uint256) pure" - } - }, - "id": 110859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14475:78:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110860, - "nodeType": "ExpressionStatement", - "src": "14475:78:279" - } - ] - }, - "baseFunctions": [111875], - "documentation": { - "id": 110813, - "nodeType": "StructuredDocumentation", - "src": "13857:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "d927acef", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110821, - "kind": "modifierInvocation", - "modifierName": { - "id": 110820, - "name": "nonReentrant", - "nameLocations": ["14030:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "14030:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "14030:12:279" - }, - { - "id": 110823, - "kind": "modifierInvocation", - "modifierName": { - "id": 110822, - "name": "whenNotPaused", - "nameLocations": ["14051:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "14051:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "14051:13:279" - }, - { - "arguments": [ - { - "id": 110825, - "name": "KEEPER_ROLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 109159, - "src": "14102:11:279", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 110826, - "kind": "modifierInvocation", - "modifierName": { - "id": 110824, - "name": "onlyRoleOrSizeFactoryHasRole", - "nameLocations": ["14073:28:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 110215, - "src": "14073:28:279" - }, - "nodeType": "ModifierInvocation", - "src": "14073:41:279" - } - ], - "name": "liquidateWithReplacement", - "nameLocation": "13892:24:279", - "overrides": { - "id": 110819, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110818, - "name": "ISize", - "nameLocations": ["14015:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "14015:5:279" - } - ], - "src": "14006:15:279" - }, - "parameters": { - "id": 110817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110816, - "mutability": "mutable", - "name": "params", - "nameLocation": "13957:6:279", - "nodeType": "VariableDeclaration", - "scope": 110862, - "src": "13917:46:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_calldata_ptr", - "typeString": "struct LiquidateWithReplacementParams" - }, - "typeName": { - "id": 110815, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110814, - "name": "LiquidateWithReplacementParams", - "nameLocations": ["13917:30:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 118999, - "src": "13917:30:279" - }, - "referencedDeclaration": 118999, - "src": "13917:30:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LiquidateWithReplacementParams_$118999_storage_ptr", - "typeString": "struct LiquidateWithReplacementParams" - } - }, - "visibility": "internal" - } - ], - "src": "13916:48:279" - }, - "returnParameters": { - "id": 110831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110828, - "mutability": "mutable", - "name": "liquidatorProfitCollateralToken", - "nameLocation": "14140:31:279", - "nodeType": "VariableDeclaration", - "scope": 110862, - "src": "14132:39:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110827, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14132:7:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110830, - "mutability": "mutable", - "name": "liquidatorProfitBorrowToken", - "nameLocation": "14181:27:279", - "nodeType": "VariableDeclaration", - "scope": 110862, - "src": "14173:35:279", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14173:7:279", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14131:78:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110880, - "nodeType": "FunctionDefinition", - "src": "14592:194:279", - "nodes": [], - "body": { - "id": 110879, - "nodeType": "Block", - "src": "14679:107:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110873, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110866, - "src": "14746:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateParams_$117056_calldata_ptr", - "typeString": "struct CompensateParams calldata" - } - }, - { - "expression": { - "id": 110874, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14766:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14770:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "14766:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CompensateParams_$117056_calldata_ptr", - "typeString": "struct CompensateParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110872, - "name": "CompensateOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117062, - "src": "14710:26:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CompensateOnBehalfOfParams_$117062_storage_ptr_$", - "typeString": "type(struct CompensateOnBehalfOfParams storage pointer)" - } - }, - "id": 110876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["14738:6:279", "14754:10:279"], - "names": ["params", "onBehalfOf"], - "nodeType": "FunctionCall", - "src": "14710:68:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr", - "typeString": "struct CompensateOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr", - "typeString": "struct CompensateOnBehalfOfParams memory" - } - ], - "id": 110871, - "name": "compensateOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110910, - "src": "14689:20:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr_$returns$__$", - "typeString": "function (struct CompensateOnBehalfOfParams memory)" - } - }, - "id": 110877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14689:90:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110878, - "nodeType": "ExpressionStatement", - "src": "14689:90:279" - } - ] - }, - "baseFunctions": [111882], - "documentation": { - "id": 110863, - "nodeType": "StructuredDocumentation", - "src": "14566:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "8e572776", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "compensate", - "nameLocation": "14601:10:279", - "overrides": { - "id": 110869, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110868, - "name": "ISize", - "nameLocations": ["14672:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "14672:5:279" - } - ], - "src": "14663:15:279" - }, - "parameters": { - "id": 110867, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110866, - "mutability": "mutable", - "name": "params", - "nameLocation": "14638:6:279", - "nodeType": "VariableDeclaration", - "scope": 110880, - "src": "14612:32:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateParams_$117056_calldata_ptr", - "typeString": "struct CompensateParams" - }, - "typeName": { - "id": 110865, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110864, - "name": "CompensateParams", - "nameLocations": ["14612:16:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117056, - "src": "14612:16:279" - }, - "referencedDeclaration": 117056, - "src": "14612:16:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateParams_$117056_storage_ptr", - "typeString": "struct CompensateParams" - } - }, - "visibility": "internal" - } - ], - "src": "14611:34:279" - }, - "returnParameters": { - "id": 110870, - "nodeType": "ParameterList", - "parameters": [], - "src": "14679:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110910, - "nodeType": "FunctionDefinition", - "src": "14822:354:279", - "nodes": [], - "body": { - "id": 110909, - "nodeType": "Block", - "src": "15070:106:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110900, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110884, - "src": "15105:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr", - "typeString": "struct CompensateOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr", - "typeString": "struct CompensateOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110897, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "15080:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110899, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15086:18:279", - "memberName": "validateCompensate", - "nodeType": "MemberAccess", - "referencedDeclaration": 117303, - "src": "15080:24:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct CompensateOnBehalfOfParams memory) view" - } - }, - "id": 110901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15080:40:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110902, - "nodeType": "ExpressionStatement", - "src": "15080:40:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110906, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110884, - "src": "15154:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr", - "typeString": "struct CompensateOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr", - "typeString": "struct CompensateOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110903, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "15130:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110905, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15136:17:279", - "memberName": "executeCompensate", - "nodeType": "MemberAccess", - "referencedDeclaration": 117427, - "src": "15130:23:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct CompensateOnBehalfOfParams memory)" - } - }, - "id": 110907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15130:39:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110908, - "nodeType": "ExpressionStatement", - "src": "15130:39:279" - } - ] - }, - "baseFunctions": [112168], - "documentation": { - "id": 110881, - "nodeType": "StructuredDocumentation", - "src": "14792:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "3ae6d7c3", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110889, - "kind": "modifierInvocation", - "modifierName": { - "id": 110888, - "name": "nonReentrant", - "nameLocations": ["14969:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "14969:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "14969:12:279" - }, - { - "id": 110891, - "kind": "modifierInvocation", - "modifierName": { - "id": 110890, - "name": "whenNotPaused", - "nameLocations": ["14990:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "14990:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "14990:13:279" - }, - { - "arguments": [ - { - "expression": { - "id": 110893, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110884, - "src": "15039:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr", - "typeString": "struct CompensateOnBehalfOfParams memory" - } - }, - "id": 110894, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15054:10:279", - "memberName": "onBehalfOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 117061, - "src": "15039:25:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 110895, - "kind": "modifierInvocation", - "modifierName": { - "id": 110892, - "name": "mustImproveCollateralRatio", - "nameLocations": ["15012:26:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 110259, - "src": "15012:26:279" - }, - "nodeType": "ModifierInvocation", - "src": "15012:53:279" - } - ], - "name": "compensateOnBehalfOf", - "nameLocation": "14831:20:279", - "overrides": { - "id": 110887, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110886, - "name": "ISizeV1_7", - "nameLocations": ["14950:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "14950:9:279" - } - ], - "src": "14941:19:279" - }, - "parameters": { - "id": 110885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110884, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "14886:14:279", - "nodeType": "VariableDeclaration", - "scope": 110910, - "src": "14852:48:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_memory_ptr", - "typeString": "struct CompensateOnBehalfOfParams" - }, - "typeName": { - "id": 110883, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110882, - "name": "CompensateOnBehalfOfParams", - "nameLocations": ["14852:26:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 117062, - "src": "14852:26:279" - }, - "referencedDeclaration": 117062, - "src": "14852:26:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CompensateOnBehalfOfParams_$117062_storage_ptr", - "typeString": "struct CompensateOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "14851:50:279" - }, - "returnParameters": { - "id": 110896, - "nodeType": "ParameterList", - "parameters": [], - "src": "15070:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110936, - "nodeType": "FunctionDefinition", - "src": "15208:256:279", - "nodes": [], - "body": { - "id": 110935, - "nodeType": "Block", - "src": "15370:94:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110926, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110914, - "src": "15407:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PartialRepayParams_$119407_calldata_ptr", - "typeString": "struct PartialRepayParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_PartialRepayParams_$119407_calldata_ptr", - "typeString": "struct PartialRepayParams calldata" - } - ], - "expression": { - "id": 110923, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "15380:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110925, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15386:20:279", - "memberName": "validatePartialRepay", - "nodeType": "MemberAccess", - "referencedDeclaration": 119533, - "src": "15380:26:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_PartialRepayParams_$119407_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct PartialRepayParams memory) view" - } - }, - "id": 110927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15380:34:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110928, - "nodeType": "ExpressionStatement", - "src": "15380:34:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110932, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110914, - "src": "15450:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PartialRepayParams_$119407_calldata_ptr", - "typeString": "struct PartialRepayParams calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_PartialRepayParams_$119407_calldata_ptr", - "typeString": "struct PartialRepayParams calldata" - } - ], - "expression": { - "id": 110929, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "15424:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110931, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15430:19:279", - "memberName": "executePartialRepay", - "nodeType": "MemberAccess", - "referencedDeclaration": 119592, - "src": "15424:25:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_PartialRepayParams_$119407_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct PartialRepayParams memory)" - } - }, - "id": 110933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15424:33:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110934, - "nodeType": "ExpressionStatement", - "src": "15424:33:279" - } - ] - }, - "baseFunctions": [111889], - "documentation": { - "id": 110911, - "nodeType": "StructuredDocumentation", - "src": "15182:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "02f2855a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110919, - "kind": "modifierInvocation", - "modifierName": { - "id": 110918, - "name": "nonReentrant", - "nameLocations": ["15331:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "15331:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "15331:12:279" - }, - { - "id": 110921, - "kind": "modifierInvocation", - "modifierName": { - "id": 110920, - "name": "whenNotPaused", - "nameLocations": ["15352:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "15352:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "15352:13:279" - } - ], - "name": "partialRepay", - "nameLocation": "15217:12:279", - "overrides": { - "id": 110917, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110916, - "name": "ISize", - "nameLocations": ["15316:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "15316:5:279" - } - ], - "src": "15307:15:279" - }, - "parameters": { - "id": 110915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110914, - "mutability": "mutable", - "name": "params", - "nameLocation": "15258:6:279", - "nodeType": "VariableDeclaration", - "scope": 110936, - "src": "15230:34:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PartialRepayParams_$119407_calldata_ptr", - "typeString": "struct PartialRepayParams" - }, - "typeName": { - "id": 110913, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110912, - "name": "PartialRepayParams", - "nameLocations": ["15230:18:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 119407, - "src": "15230:18:279" - }, - "referencedDeclaration": 119407, - "src": "15230:18:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PartialRepayParams_$119407_storage_ptr", - "typeString": "struct PartialRepayParams" - } - }, - "visibility": "internal" - } - ], - "src": "15229:36:279" - }, - "returnParameters": { - "id": 110922, - "nodeType": "ParameterList", - "parameters": [], - "src": "15370:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110954, - "nodeType": "FunctionDefinition", - "src": "15496:234:279", - "nodes": [], - "body": { - "id": 110953, - "nodeType": "Block", - "src": "15603:127:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110947, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110940, - "src": "15690:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetUserConfigurationParams_$121083_calldata_ptr", - "typeString": "struct SetUserConfigurationParams calldata" - } - }, - { - "expression": { - "id": 110948, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "15710:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15714:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "15710:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetUserConfigurationParams_$121083_calldata_ptr", - "typeString": "struct SetUserConfigurationParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110946, - "name": "SetUserConfigurationOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121089, - "src": "15644:36:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_storage_ptr_$", - "typeString": "type(struct SetUserConfigurationOnBehalfOfParams storage pointer)" - } - }, - "id": 110950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["15682:6:279", "15698:10:279"], - "names": ["params", "onBehalfOf"], - "nodeType": "FunctionCall", - "src": "15644:78:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr", - "typeString": "struct SetUserConfigurationOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr", - "typeString": "struct SetUserConfigurationOnBehalfOfParams memory" - } - ], - "id": 110945, - "name": "setUserConfigurationOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110980, - "src": "15613:30:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr_$returns$__$", - "typeString": "function (struct SetUserConfigurationOnBehalfOfParams memory)" - } - }, - "id": 110951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15613:110:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110952, - "nodeType": "ExpressionStatement", - "src": "15613:110:279" - } - ] - }, - "baseFunctions": [111896], - "documentation": { - "id": 110937, - "nodeType": "StructuredDocumentation", - "src": "15470:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "2e106f21", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setUserConfiguration", - "nameLocation": "15505:20:279", - "overrides": { - "id": 110943, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110942, - "name": "ISize", - "nameLocations": ["15596:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "15596:5:279" - } - ], - "src": "15587:15:279" - }, - "parameters": { - "id": 110941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110940, - "mutability": "mutable", - "name": "params", - "nameLocation": "15562:6:279", - "nodeType": "VariableDeclaration", - "scope": 110954, - "src": "15526:42:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetUserConfigurationParams_$121083_calldata_ptr", - "typeString": "struct SetUserConfigurationParams" - }, - "typeName": { - "id": 110939, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110938, - "name": "SetUserConfigurationParams", - "nameLocations": ["15526:26:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121083, - "src": "15526:26:279" - }, - "referencedDeclaration": 121083, - "src": "15526:26:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetUserConfigurationParams_$121083_storage_ptr", - "typeString": "struct SetUserConfigurationParams" - } - }, - "visibility": "internal" - } - ], - "src": "15525:44:279" - }, - "returnParameters": { - "id": 110944, - "nodeType": "ParameterList", - "parameters": [], - "src": "15603:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 110980, - "nodeType": "FunctionDefinition", - "src": "15766:332:279", - "nodes": [], - "body": { - "id": 110979, - "nodeType": "Block", - "src": "15972:126:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 110970, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110958, - "src": "16017:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr", - "typeString": "struct SetUserConfigurationOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr", - "typeString": "struct SetUserConfigurationOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110967, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "15982:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110969, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15988:28:279", - "memberName": "validateSetUserConfiguration", - "nodeType": "MemberAccess", - "referencedDeclaration": 121203, - "src": "15982:34:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SetUserConfigurationOnBehalfOfParams memory) view" - } - }, - "id": 110971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15982:50:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110972, - "nodeType": "ExpressionStatement", - "src": "15982:50:279" - }, - { - "expression": { - "arguments": [ - { - "id": 110976, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110958, - "src": "16076:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr", - "typeString": "struct SetUserConfigurationOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr", - "typeString": "struct SetUserConfigurationOnBehalfOfParams memory" - } - ], - "expression": { - "id": 110973, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "16042:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 110975, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16048:27:279", - "memberName": "executeSetUserConfiguration", - "nodeType": "MemberAccess", - "referencedDeclaration": 121311, - "src": "16042:33:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SetUserConfigurationOnBehalfOfParams memory)" - } - }, - "id": 110977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16042:49:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110978, - "nodeType": "ExpressionStatement", - "src": "16042:49:279" - } - ] - }, - "baseFunctions": [112175], - "documentation": { - "id": 110955, - "nodeType": "StructuredDocumentation", - "src": "15736:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "134f3f96", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 110963, - "kind": "modifierInvocation", - "modifierName": { - "id": 110962, - "name": "nonReentrant", - "nameLocations": ["15933:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "15933:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "15933:12:279" - }, - { - "id": 110965, - "kind": "modifierInvocation", - "modifierName": { - "id": 110964, - "name": "whenNotPaused", - "nameLocations": ["15954:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "15954:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "15954:13:279" - } - ], - "name": "setUserConfigurationOnBehalfOf", - "nameLocation": "15775:30:279", - "overrides": { - "id": 110961, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110960, - "name": "ISizeV1_7", - "nameLocations": ["15914:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "15914:9:279" - } - ], - "src": "15905:19:279" - }, - "parameters": { - "id": 110959, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110958, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "15850:14:279", - "nodeType": "VariableDeclaration", - "scope": 110980, - "src": "15806:58:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_memory_ptr", - "typeString": "struct SetUserConfigurationOnBehalfOfParams" - }, - "typeName": { - "id": 110957, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110956, - "name": "SetUserConfigurationOnBehalfOfParams", - "nameLocations": ["15806:36:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121089, - "src": "15806:36:279" - }, - "referencedDeclaration": 121089, - "src": "15806:36:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetUserConfigurationOnBehalfOfParams_$121089_storage_ptr", - "typeString": "struct SetUserConfigurationOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "15805:60:279" - }, - "returnParameters": { - "id": 110966, - "nodeType": "ParameterList", - "parameters": [], - "src": "15972:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 110998, - "nodeType": "FunctionDefinition", - "src": "16130:300:279", - "nodes": [], - "body": { - "id": 110997, - "nodeType": "Block", - "src": "16273:157:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 110991, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110984, - "src": "16381:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsParams_$120903_calldata_ptr", - "typeString": "struct SetCopyLimitOrderConfigsParams calldata" - } - }, - { - "expression": { - "id": 110992, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "16401:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 110993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16405:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16401:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsParams_$120903_calldata_ptr", - "typeString": "struct SetCopyLimitOrderConfigsParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 110990, - "name": "SetCopyLimitOrderConfigsOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120909, - "src": "16331:40:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_storage_ptr_$", - "typeString": "type(struct SetCopyLimitOrderConfigsOnBehalfOfParams storage pointer)" - } - }, - "id": 110994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["16373:6:279", "16389:10:279"], - "names": ["params", "onBehalfOf"], - "nodeType": "FunctionCall", - "src": "16331:82:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr", - "typeString": "struct SetCopyLimitOrderConfigsOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr", - "typeString": "struct SetCopyLimitOrderConfigsOnBehalfOfParams memory" - } - ], - "id": 110989, - "name": "setCopyLimitOrderConfigsOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111024, - "src": "16283:34:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr_$returns$__$", - "typeString": "function (struct SetCopyLimitOrderConfigsOnBehalfOfParams memory)" - } - }, - "id": 110995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16283:140:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 110996, - "nodeType": "ExpressionStatement", - "src": "16283:140:279" - } - ] - }, - "baseFunctions": [111903], - "documentation": { - "id": 110981, - "nodeType": "StructuredDocumentation", - "src": "16104:21:279", - "text": "@inheritdoc ISize" - }, - "functionSelector": "cb2e9bdc", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setCopyLimitOrderConfigs", - "nameLocation": "16139:24:279", - "overrides": { - "id": 110987, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 110986, - "name": "ISize", - "nameLocations": ["16262:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "16262:5:279" - } - ], - "src": "16253:15:279" - }, - "parameters": { - "id": 110985, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110984, - "mutability": "mutable", - "name": "params", - "nameLocation": "16204:6:279", - "nodeType": "VariableDeclaration", - "scope": 110998, - "src": "16164:46:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsParams_$120903_calldata_ptr", - "typeString": "struct SetCopyLimitOrderConfigsParams" - }, - "typeName": { - "id": 110983, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 110982, - "name": "SetCopyLimitOrderConfigsParams", - "nameLocations": ["16164:30:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120903, - "src": "16164:30:279" - }, - "referencedDeclaration": 120903, - "src": "16164:30:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsParams_$120903_storage_ptr", - "typeString": "struct SetCopyLimitOrderConfigsParams" - } - }, - "visibility": "internal" - } - ], - "src": "16163:48:279" - }, - "returnParameters": { - "id": 110988, - "nodeType": "ParameterList", - "parameters": [], - "src": "16273:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 111024, - "nodeType": "FunctionDefinition", - "src": "16466:348:279", - "nodes": [], - "body": { - "id": 111023, - "nodeType": "Block", - "src": "16680:134:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 111014, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111002, - "src": "16729:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr", - "typeString": "struct SetCopyLimitOrderConfigsOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr", - "typeString": "struct SetCopyLimitOrderConfigsOnBehalfOfParams memory" - } - ], - "expression": { - "id": 111011, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "16690:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 111013, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16696:32:279", - "memberName": "validateSetCopyLimitOrderConfigs", - "nodeType": "MemberAccess", - "referencedDeclaration": 120971, - "src": "16690:38:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SetCopyLimitOrderConfigsOnBehalfOfParams memory) view" - } - }, - "id": 111015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16690:54:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 111016, - "nodeType": "ExpressionStatement", - "src": "16690:54:279" - }, - { - "expression": { - "arguments": [ - { - "id": 111020, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111002, - "src": "16792:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr", - "typeString": "struct SetCopyLimitOrderConfigsOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr", - "typeString": "struct SetCopyLimitOrderConfigsOnBehalfOfParams memory" - } - ], - "expression": { - "id": 111017, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "16754:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 111019, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16760:31:279", - "memberName": "executeSetCopyLimitOrderConfigs", - "nodeType": "MemberAccess", - "referencedDeclaration": 121055, - "src": "16754:37:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SetCopyLimitOrderConfigsOnBehalfOfParams memory)" - } - }, - "id": 111021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16754:53:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 111022, - "nodeType": "ExpressionStatement", - "src": "16754:53:279" - } - ] - }, - "baseFunctions": [112182], - "documentation": { - "id": 110999, - "nodeType": "StructuredDocumentation", - "src": "16436:25:279", - "text": "@inheritdoc ISizeV1_7" - }, - "functionSelector": "7a32376a", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 111007, - "kind": "modifierInvocation", - "modifierName": { - "id": 111006, - "name": "nonReentrant", - "nameLocations": ["16641:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "16641:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "16641:12:279" - }, - { - "id": 111009, - "kind": "modifierInvocation", - "modifierName": { - "id": 111008, - "name": "whenNotPaused", - "nameLocations": ["16662:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "16662:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "16662:13:279" - } - ], - "name": "setCopyLimitOrderConfigsOnBehalfOf", - "nameLocation": "16475:34:279", - "overrides": { - "id": 111005, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 111004, - "name": "ISizeV1_7", - "nameLocations": ["16622:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112183, - "src": "16622:9:279" - } - ], - "src": "16613:19:279" - }, - "parameters": { - "id": 111003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111002, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "16558:14:279", - "nodeType": "VariableDeclaration", - "scope": 111024, - "src": "16510:62:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_memory_ptr", - "typeString": "struct SetCopyLimitOrderConfigsOnBehalfOfParams" - }, - "typeName": { - "id": 111001, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 111000, - "name": "SetCopyLimitOrderConfigsOnBehalfOfParams", - "nameLocations": ["16510:40:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 120909, - "src": "16510:40:279" - }, - "referencedDeclaration": 120909, - "src": "16510:40:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetCopyLimitOrderConfigsOnBehalfOfParams_$120909_storage_ptr", - "typeString": "struct SetCopyLimitOrderConfigsOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "16509:64:279" - }, - "returnParameters": { - "id": 111010, - "nodeType": "ParameterList", - "parameters": [], - "src": "16680:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "id": 111042, - "nodeType": "FunctionDefinition", - "src": "16850:190:279", - "nodes": [], - "body": { - "id": 111041, - "nodeType": "Block", - "src": "16937:103:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 111035, - "name": "params", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111028, - "src": "17000:6:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetVaultParams_$121327_calldata_ptr", - "typeString": "struct SetVaultParams calldata" - } - }, - { - "expression": { - "id": 111036, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "17020:3:279", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 111037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17024:6:279", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "17020:10:279", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetVaultParams_$121327_calldata_ptr", - "typeString": "struct SetVaultParams calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 111034, - "name": "SetVaultOnBehalfOfParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121333, - "src": "16966:24:279", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SetVaultOnBehalfOfParams_$121333_storage_ptr_$", - "typeString": "type(struct SetVaultOnBehalfOfParams storage pointer)" - } - }, - "id": 111038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": ["16992:6:279", "17008:10:279"], - "names": ["params", "onBehalfOf"], - "nodeType": "FunctionCall", - "src": "16966:66:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr", - "typeString": "struct SetVaultOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr", - "typeString": "struct SetVaultOnBehalfOfParams memory" - } - ], - "id": 111033, - "name": "setVaultOnBehalfOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111068, - "src": "16947:18:279", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr_$returns$__$", - "typeString": "function (struct SetVaultOnBehalfOfParams memory)" - } - }, - "id": 111039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16947:86:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 111040, - "nodeType": "ExpressionStatement", - "src": "16947:86:279" - } - ] - }, - "baseFunctions": [112201], - "documentation": { - "id": 111025, - "nodeType": "StructuredDocumentation", - "src": "16820:25:279", - "text": "@inheritdoc ISizeV1_8" - }, - "functionSelector": "510aeb39", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setVault", - "nameLocation": "16859:8:279", - "overrides": { - "id": 111031, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 111030, - "name": "ISizeV1_8", - "nameLocations": ["16926:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112209, - "src": "16926:9:279" - } - ], - "src": "16917:19:279" - }, - "parameters": { - "id": 111029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111028, - "mutability": "mutable", - "name": "params", - "nameLocation": "16892:6:279", - "nodeType": "VariableDeclaration", - "scope": 111042, - "src": "16868:30:279", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetVaultParams_$121327_calldata_ptr", - "typeString": "struct SetVaultParams" - }, - "typeName": { - "id": 111027, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 111026, - "name": "SetVaultParams", - "nameLocations": ["16868:14:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121327, - "src": "16868:14:279" - }, - "referencedDeclaration": 121327, - "src": "16868:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetVaultParams_$121327_storage_ptr", - "typeString": "struct SetVaultParams" - } - }, - "visibility": "internal" - } - ], - "src": "16867:32:279" - }, - "returnParameters": { - "id": 111032, - "nodeType": "ParameterList", - "parameters": [], - "src": "16937:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "id": 111068, - "nodeType": "FunctionDefinition", - "src": "17076:284:279", - "nodes": [], - "body": { - "id": 111067, - "nodeType": "Block", - "src": "17258:102:279", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 111058, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111046, - "src": "17291:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr", - "typeString": "struct SetVaultOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr", - "typeString": "struct SetVaultOnBehalfOfParams memory" - } - ], - "expression": { - "id": 111055, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "17268:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 111057, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17274:16:279", - "memberName": "validateSetVault", - "nodeType": "MemberAccess", - "referencedDeclaration": 121376, - "src": "17268:22:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SetVaultOnBehalfOfParams memory) view" - } - }, - "id": 111059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17268:38:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 111060, - "nodeType": "ExpressionStatement", - "src": "17268:38:279" - }, - { - "expression": { - "arguments": [ - { - "id": 111064, - "name": "externalParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111046, - "src": "17338:14:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr", - "typeString": "struct SetVaultOnBehalfOfParams memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr", - "typeString": "struct SetVaultOnBehalfOfParams memory" - } - ], - "expression": { - "id": 111061, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111217, - "src": "17316:5:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$111213_storage", - "typeString": "struct State storage ref" - } - }, - "id": 111063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17322:15:279", - "memberName": "executeSetVault", - "nodeType": "MemberAccess", - "referencedDeclaration": 121424, - "src": "17316:21:279", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_State_$111213_storage_ptr_$_t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr_$returns$__$attached_to$_t_struct$_State_$111213_storage_ptr_$", - "typeString": "function (struct State storage pointer,struct SetVaultOnBehalfOfParams memory)" - } - }, - "id": 111065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17316:37:279", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 111066, - "nodeType": "ExpressionStatement", - "src": "17316:37:279" - } - ] - }, - "baseFunctions": [112208], - "documentation": { - "id": 111043, - "nodeType": "StructuredDocumentation", - "src": "17046:25:279", - "text": "@inheritdoc ISizeV1_8" - }, - "functionSelector": "75829a36", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 111051, - "kind": "modifierInvocation", - "modifierName": { - "id": 111050, - "name": "nonReentrant", - "nameLocations": ["17219:12:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55073, - "src": "17219:12:279" - }, - "nodeType": "ModifierInvocation", - "src": "17219:12:279" - }, - { - "id": 111053, - "kind": "modifierInvocation", - "modifierName": { - "id": 111052, - "name": "whenNotPaused", - "nameLocations": ["17240:13:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54894, - "src": "17240:13:279" - }, - "nodeType": "ModifierInvocation", - "src": "17240:13:279" - } - ], - "name": "setVaultOnBehalfOf", - "nameLocation": "17085:18:279", - "overrides": { - "id": 111049, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 111048, - "name": "ISizeV1_8", - "nameLocations": ["17200:9:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112209, - "src": "17200:9:279" - } - ], - "src": "17191:19:279" - }, - "parameters": { - "id": 111047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111046, - "mutability": "mutable", - "name": "externalParams", - "nameLocation": "17136:14:279", - "nodeType": "VariableDeclaration", - "scope": 111068, - "src": "17104:46:279", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetVaultOnBehalfOfParams_$121333_memory_ptr", - "typeString": "struct SetVaultOnBehalfOfParams" - }, - "typeName": { - "id": 111045, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 111044, - "name": "SetVaultOnBehalfOfParams", - "nameLocations": ["17104:24:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 121333, - "src": "17104:24:279" - }, - "referencedDeclaration": 121333, - "src": "17104:24:279", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SetVaultOnBehalfOfParams_$121333_storage_ptr", - "typeString": "struct SetVaultOnBehalfOfParams" - } - }, - "visibility": "internal" - } - ], - "src": "17103:48:279" - }, - "returnParameters": { - "id": 111054, - "nodeType": "ParameterList", - "parameters": [], - "src": "17258:0:279" - }, - "scope": 111069, - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 109966, - "name": "ISize", - "nameLocations": ["4105:5:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111904, - "src": "4105:5:279" - }, - "id": 109967, - "nodeType": "InheritanceSpecifier", - "src": "4105:5:279" - }, - { - "baseName": { - "id": 109968, - "name": "SizeView", - "nameLocations": ["4116:8:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 111671, - "src": "4116:8:279" - }, - "id": 109969, - "nodeType": "InheritanceSpecifier", - "src": "4116:8:279" - }, - { - "baseName": { - "id": 109970, - "name": "AccessControlUpgradeable", - "nameLocations": ["4130:24:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 52349, - "src": "4130:24:279" - }, - "id": 109971, - "nodeType": "InheritanceSpecifier", - "src": "4130:24:279" - }, - { - "baseName": { - "id": 109972, - "name": "PausableUpgradeable", - "nameLocations": ["4160:19:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55004, - "src": "4160:19:279" - }, - "id": 109973, - "nodeType": "InheritanceSpecifier", - "src": "4160:19:279" - }, - { - "baseName": { - "id": 109974, - "name": "UUPSUpgradeable", - "nameLocations": ["4237:15:279"], - "nodeType": "IdentifierPath", - "referencedDeclaration": 53131, - "src": "4237:15:279" - }, - "id": 109975, - "nodeType": "InheritanceSpecifier", - "src": "4237:15:279" - } - ], - "canonicalName": "Size", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 109965, - "nodeType": "StructuredDocumentation", - "src": "3932:152:279", - "text": "@title Size\n @custom:security-contact security@size.credit\n @author Size (https://size.credit/)\n @notice See the documentation in {ISize}." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 111069, 53131, 55995, 55004, 52349, 55173, 62239, 55552, 54741, - 111671, 111904, 112209, 112183, 111732, 111931, 112071, 112281, - 109851, 55133, 52949, 111218 - ], - "name": "Size", - "nameLocation": "4093:4:279", - "scope": 111070, - "usedErrors": [ - 52698, 52701, 52976, 52981, 54883, 54886, 55035, 55479, 55482, 56603, - 56616, 59175, 60378, 113208, 113214, 113320, 113384 - ], - "usedEvents": [52706, 54875, 54880, 55491, 55500, 55509, 55794, 113650] - } - ], - "license": "MIT" - }, - "id": 279 + "id": 278 } diff --git a/src/v1.8/abi/SizeFactory.json b/src/v1.8/abi/SizeFactory.json index 4daa4c7..4a1543f 100644 --- a/src/v1.8/abi/SizeFactory.json +++ b/src/v1.8/abi/SizeFactory.json @@ -513,18 +513,6 @@ "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, - { - "type": "function", - "name": "onERC721Received", - "inputs": [ - { "name": "", "type": "address", "internalType": "address" }, - { "name": "", "type": "address", "internalType": "address" }, - { "name": "", "type": "uint256", "internalType": "uint256" }, - { "name": "", "type": "bytes", "internalType": "bytes" } - ], - "outputs": [{ "name": "", "type": "bytes4", "internalType": "bytes4" }], - "stateMutability": "nonpayable" - }, { "type": "function", "name": "proxiableUUID", @@ -532,31 +520,6 @@ "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, - { - "type": "function", - "name": "reinitialize", - "inputs": [ - { - "name": "_collectionsManager", - "type": "address", - "internalType": "contract ICollectionsManager" - }, - { "name": "_users", "type": "address[]", "internalType": "address[]" }, - { "name": "_curator", "type": "address", "internalType": "address" }, - { - "name": "_rateProvider", - "type": "address", - "internalType": "address" - }, - { - "name": "_collectionMarkets", - "type": "address[]", - "internalType": "contract ISize[]" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, { "type": "function", "name": "renounceRole", @@ -641,6 +604,113 @@ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "setUserCollectionCopyLimitOrderConfigs", + "inputs": [ + { + "name": "collectionId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "copyLoanOfferConfig", + "type": "tuple", + "internalType": "struct CopyLimitOrderConfig", + "components": [ + { + "name": "minTenor", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxTenor", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "offsetAPR", "type": "int256", "internalType": "int256" } + ] + }, + { + "name": "copyBorrowOfferConfig", + "type": "tuple", + "internalType": "struct CopyLimitOrderConfig", + "components": [ + { + "name": "minTenor", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxTenor", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "offsetAPR", "type": "int256", "internalType": "int256" } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setUserCollectionCopyLimitOrderConfigsOnBehalfOf", + "inputs": [ + { + "name": "collectionId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "copyLoanOfferConfig", + "type": "tuple", + "internalType": "struct CopyLimitOrderConfig", + "components": [ + { + "name": "minTenor", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxTenor", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "offsetAPR", "type": "int256", "internalType": "int256" } + ] + }, + { + "name": "copyBorrowOfferConfig", + "type": "tuple", + "internalType": "struct CopyLimitOrderConfig", + "components": [ + { + "name": "minTenor", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maxTenor", + "type": "uint256", + "internalType": "uint256" + }, + { "name": "minAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "maxAPR", "type": "uint256", "internalType": "uint256" }, + { "name": "offsetAPR", "type": "int256", "internalType": "int256" } + ] + }, + { "name": "onBehalfOf", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "sizeImplementation", @@ -661,6 +731,20 @@ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "subscribeToCollectionsOnBehalfOf", + "inputs": [ + { + "name": "collectionIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { "name": "onBehalfOf", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "supportsInterface", @@ -683,6 +767,20 @@ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "unsubscribeFromCollectionsOnBehalfOf", + "inputs": [ + { + "name": "collectionIds", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { "name": "onBehalfOf", "type": "address", "internalType": "address" } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "upgradeToAndCall", @@ -1003,6 +1101,15 @@ { "type": "error", "name": "InvalidInitialization", "inputs": [] }, { "type": "error", "name": "NULL_ADDRESS", "inputs": [] }, { "type": "error", "name": "NotInitializing", "inputs": [] }, + { + "type": "error", + "name": "UNAUTHORIZED_ACTION", + "inputs": [ + { "name": "account", "type": "address", "internalType": "address" }, + { "name": "onBehalfOf", "type": "address", "internalType": "address" }, + { "name": "action", "type": "uint8", "internalType": "uint8" } + ] + }, { "type": "error", "name": "UUPSUnauthorizedCallContext", "inputs": [] }, { "type": "error", @@ -1013,43 +1120,43 @@ } ], "bytecode": { - "object": "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051613c36620001005f395f81816122cd015281816122f601526124390152613c365ff3fe608060405260043610610249575f3560e01c806381de274c11610134578063ac9650d8116100b3578063d152e23611610078578063d152e23614610730578063d547741f1461074f578063e8d353c71461076e578063eb44fdd31461078d578063ec2c9016146107ac578063f0fb716f146107cd575f80fd5b8063ac9650d814610677578063ad3cb1cc146106a3578063b4cd6bd1146106d3578063c4d66de8146106f2578063c8fb624714610711575f80fd5b80639e42bfa3116100f95780639e42bfa3146105f35780639feffdb014610612578063a217fddf14610631578063a78ec6ae14610644578063a7b2b31014610663575f80fd5b806381de274c1461054c57806386eeeb5a1461057757806391c769ce1461059657806391d14854146105b5578063973cf867146105d4575f80fd5b80634481f4d1116101cb5780635ec49544116101905780635ec49544146104735780635fb7f10c14610492578063678b9bad146104b15780636ec934da146104d05780637643d7ec146104ef5780637b8dedad14610510575f80fd5b80634481f4d1146103d9578063495e6d89146103f85780634f1ef2861461041757806352d1902d1461042a57806354fd4d501461043e575f80fd5b8063248a9ca311610211578063248a9ca31461033b57806327fa35c3146103685780632f2ff15d1461037c57806336568abe1461039b57806337c11b2a146103ba575f80fd5b806301a6c8721461024d57806301ffc9a71461026e5780631286a2dc146102a2578063150b7a02146102d95780631e4fcddb1461031c575b5f80fd5b348015610258575f80fd5b5061026c610267366004612a64565b6107ec565b005b348015610279575f80fd5b5061028d610288366004612a7f565b610852565b60405190151581526020015b60405180910390f35b3480156102ad575f80fd5b506007546102c1906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b3480156102e4575f80fd5b506103036102f3366004612b9b565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610299565b348015610327575f80fd5b5061026c610336366004612a64565b610888565b348015610346575f80fd5b5061035a610355366004612c02565b610915565b604051908152602001610299565b348015610373575f80fd5b5061035a610935565b348015610387575f80fd5b5061026c610396366004612c19565b610944565b3480156103a6575f80fd5b5061026c6103b5366004612c19565b610966565b3480156103c5575f80fd5b50600a546102c1906001600160a01b031681565b3480156103e4575f80fd5b5061026c6103f3366004612cd9565b61099e565b348015610403575f80fd5b5061035a610412366004612dc9565b61125a565b61026c610425366004612e20565b6112ef565b348015610435575f80fd5b5061035a61130e565b348015610449575f80fd5b5060408051808201909152600481526376312e3760e01b60208201525b6040516102999190612eb9565b34801561047e575f80fd5b5061046661048d366004612ecb565b611329565b34801561049d575f80fd5b5061035a6104ac366004612dc9565b6113a8565b3480156104bc575f80fd5b5061028d6104cb366004612f48565b6113f8565b3480156104db575f80fd5b5061028d6104ea366004612a64565b611484565b3480156104fa575f80fd5b5061050361148f565b6040516102999190612f8d565b34801561051b575f80fd5b5061035a61052a366004612fef565b600860209081525f938452604080852082529284528284209052825290205481565b348015610557575f80fd5b5061035a610566366004612a64565b60096020525f908152604090205481565b348015610582575f80fd5b5061028d61059136600461302e565b6117bd565b3480156105a1575f80fd5b5061026c6105b036600461306e565b61182d565b3480156105c0575f80fd5b5061028d6105cf366004612c19565b611838565b3480156105df575f80fd5b506006546102c1906001600160a01b031681565b3480156105fe575f80fd5b5061026c61060d366004613098565b61186e565b34801561061d575f80fd5b5061028d61062c366004612f48565b6118d0565b34801561063c575f80fd5b5061035a5f81565b34801561064f575f80fd5b5061028d61065e366004613123565b611918565b34801561066e575f80fd5b5061026c61197d565b348015610682575f80fd5b50610696610691366004613161565b6119c8565b60405161029991906131cf565b3480156106ae575f80fd5b50610466604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156106de575f80fd5b5061026c6106ed366004612a64565b611aad565b3480156106fd575f80fd5b5061026c61070c366004612a64565b611b3a565b34801561071c575f80fd5b5061026c61072b366004613098565b611ccc565b34801561073b575f80fd5b506102c161074a366004613237565b611cfe565b34801561075a575f80fd5b5061026c610769366004612c19565b611dbb565b348015610779575f80fd5b506102c16107883660046132f0565b611dd7565b348015610798575f80fd5b506102c16107a7366004612c02565b611eb6565b3480156107b7575f80fd5b506107c0611ec1565b604051610299919061335f565b3480156107d8575f80fd5b506102c16107e7366004613387565b611f56565b5f6107f68161203a565b600a546040516001600160a01b038085169216907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae905f90a350600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160e01b03198216637965db0b60e01b148061088257506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6108928161203a565b6001600160a01b0382166108b95760405163de0ce17d60e01b815260040160405180910390fd5b6007546040516001600160a01b038085169216907faefd875bf3940c57f185da0affbb82ce03656890d6e1d29310e8b4bf9d20b7c1905f90a350600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f9081525f80516020613be1833981519152602052604090206001015490565b5f61093f5f612047565b905090565b61094d82610915565b6109568161203a565b6109608383612050565b50505050565b6001600160a01b038116331461098f5760405163334bd91960e11b815260040160405180910390fd5b61099982826120f1565b505050565b5f6109a88161203a565b612a305f6109b461216a565b8054909150600160401b900460ff16806109db575080546001600160401b03808416911610155b156109f95760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556001600160a01b038816610a415760405163de0ce17d60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b038a169081179091556040515f907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae908290a36001600160a01b0386161580610aa657506001600160a01b038516155b611209576040805160018082528183019092525f91602080830190803683375050600a546040805163191fc6a760e21b815290519394506001600160a01b039091169263647f1a9c9250600480830192602092919082900301815f875af1158015610b13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3791906133f2565b815f81518110610b4957610b49613409565b6020026020010181815250505f85516001600160401b03811115610b6f57610b6f612ab6565b604051908082528060200260200182016040528015610bcd57816020015b610bba6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b815260200190600190039081610b8d5790505b5090505f86516001600160401b03811115610bea57610bea612ab6565b604051908082528060200260200182016040528015610c4857816020015b610c356040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b815260200190600190039081610c085790505b5090505f5b8751811015610cec576040518060a001604052805f81526020015f81526020015f81526020015f8152602001600160ff1b815250838281518110610c9357610c93613409565b60200260200101819052506040518060a001604052805f81526020015f1981526020015f81526020015f1981526020015f815250828281518110610cd957610cd9613409565b6020908102919091010152600101610c4d565b50600a5483516001600160a01b03909116906315d5cf999085905f90610d1457610d14613409565b60200260200101518984866040518563ffffffff1660e01b8152600401610d3e9493929190613476565b5f604051808303815f87803b158015610d55575f80fd5b505af1158015610d67573d5f803e3d5ffd5b505f925060019150610d769050565b604051908082528060200260200182016040528015610d9f578160200160208202803683370190505b50905088815f81518110610db557610db5613409565b60200260200101906001600160a01b031690816001600160a01b0316815250505f5b8851811015610e8157600a5485516001600160a01b039091169063eb379a589087905f90610e0757610e07613409565b60200260200101518b8481518110610e2157610e21613409565b6020026020010151856040518463ffffffff1660e01b8152600401610e48939291906134b4565b5f604051808303815f87803b158015610e5f575f80fd5b505af1158015610e71573d5f803e3d5ffd5b505060019092019150610dd79050565b506040805160028082526060820183525f926020830190803683370190505090506002815f81518110610eb657610eb6613409565b6020026020010190600a811115610ecf57610ecf613515565b9081600a811115610ee257610ee2613515565b81525050600381600181518110610efb57610efb613409565b6020026020010190600a811115610f1457610f14613515565b9081600a811115610f2757610f27613515565b9052505f5b8c5181101561117257600a548d516001600160a01b03909116906393c0d3f3908f9084908110610f5e57610f5e613409565b6020026020010151886040518363ffffffff1660e01b8152600401610f84929190613558565b5f604051808303815f87803b158015610f9b575f80fd5b505af1158015610fad573d5f803e3d5ffd5b50505050610fdd308e8381518110610fc757610fc7613409565b6020026020010151610fd885612192565b6121da565b5f5b8a5181101561114457610ff06129f7565b8e838151811061100257611002613409565b6020908102919091018101516001600160a01b0316908201528b518c908390811061102f5761102f613409565b60200260200101516001600160a01b03166353e043d4826040518263ffffffff1660e01b8152600401611062919061362e565b5f604051808303815f87803b158015611079575f80fd5b505af115801561108b573d5f803e3d5ffd5b505050506110976129f7565b8f84815181106110a9576110a9613409565b6020908102919091018101516001600160a01b0316908201528c518d90849081106110d6576110d6613409565b60200260200101516001600160a01b0316634fd9a8a5826040518263ffffffff1660e01b8152600401611109919061362e565b5f604051808303815f87803b158015611120575f80fd5b505af1158015611132573d5f803e3d5ffd5b505060019094019350610fdf92505050565b5061116a308e838151811061115b5761115b613409565b6020026020010151610fd85f90565b600101610f2c565b508c6001600160a01b03166342842e0e308d885f8151811061119657611196613409565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064015f604051808303815f87803b1580156111ed575f80fd5b505af11580156111ff573d5f803e3d5ffd5b5050505050505050505b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b600a5460405163495e6d8960e01b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f92169063495e6d899060a4015b602060405180830381865afa1580156112c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e591906133f2565b9695505050505050565b6112f76122c2565b61130082612368565b61130a8282612372565b5050565b5f61131761242e565b505f80516020613bc183398151915290565b606061133484611484565b6113615760405163e2a7bea360e01b81526001600160a01b03851660048201526024015b60405180910390fd5b6113a08484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061247792505050565b949350505050565b600a546040516317edfc4360e21b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f921690635fb7f10c9060a4016112a6565b600a5460405163678b9bad60e01b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f92169063678b9bad906084015b602060405180830381865afa158015611457573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147b9190613640565b95945050505050565b5f6108828183612484565b606061149a5f612047565b6001600160401b038111156114b1576114b1612ab6565b6040519080825280602002602001820160405280156114e457816020015b60608152602001906001900390816114cf5790505b5090505f5b81518110156117b9575f6114fd81836124a5565b90505f6115776064836001600160a01b0316637c90a6ca6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611541573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611565919061365f565b60200151670de0b6b3a76400006124b0565b9050816001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa1580156115b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115da91906136d7565b604001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015611618573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261163f9190810190613790565b826001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa15801561167c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a091906136d7565b606001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156116de573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117059190810190613790565b61170e836124bc565b846001600160a01b03166354fd4d506040518163ffffffff1660e01b81526004015f60405180830381865afa158015611749573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117709190810190613790565b60405160200161178394939291906137f8565b6040516020818303038152906040528484815181106117a4576117a4613409565b602090810291909101015250506001016114e9565b5090565b5f826001600160a01b0316846001600160a01b0316036117df57506001611826565b6001600160a01b038084165f8181526009602090815260408083205480845260088352818420958a1684529482528083209383529290522054611822908461254b565b9150505b9392505050565b61130a8233836121da565b5f9182525f80516020613be1833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600a546040516301bc3d7160e71b81526001600160a01b039091169063de1eb880906118a09033908590600401613558565b5f604051808303815f87803b1580156118b7575f80fd5b505af11580156118c9573d5f803e3d5ffd5b5050505050565b600a546040516309feffdb60e41b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f921690639feffdb09060840161143c565b5f826001600160a01b0316846001600160a01b03160361193a57506001611826565b506001600160a01b038281165f81815260096020908152604080832054835260088252808320948816835293815283822092825291909152205481168114611826565b60405133907fecbee29490a7e5456f4e3aab0700477764e3f16dda5a21ea92f43f1cfcb15799905f90a2335f9081526009602052604081208054916119c183613898565b9190505550565b604080515f815260208101909152606090826001600160401b038111156119f1576119f1612ab6565b604051908082528060200260200182016040528015611a2457816020015b6060815260200190600190039081611a0f5790505b5091505f5b83811015611aa557611a8030868684818110611a4757611a47613409565b9050602002810190611a5991906138c3565b85604051602001611a6c9392919061390c565b60405160208183030381529060405261256d565b838281518110611a9257611a92613409565b6020908102919091010152600101611a29565b505092915050565b5f611ab78161203a565b6001600160a01b038216611ade5760405163de0ce17d60e01b815260040160405180910390fd5b6006546040516001600160a01b038085169216907ffb3d0b43c5121de915eeb8fa2fb4bb792b6b05d5d6f3df7630aac9d9e8697312905f90a350600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f611b4361216a565b805490915060ff600160401b82041615906001600160401b03165f81158015611b695750825b90505f826001600160401b03166001148015611b845750303b155b905081158015611b92575080155b15611bb05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611bda57845460ff60401b1916600160401b1785555b611be26125d6565b611bea6125d6565b611bf26125d6565b611bfc5f87612050565b50611c277f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87612050565b50611c527ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab87612050565b50611c7d7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd2403887612050565b508315611cc457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600a546040516393c0d3f360e01b81526001600160a01b03909116906393c0d3f3906118a09033908590600401613558565b5f80611d098161203a565b60405163145b6cb960e11b815273__$8498e19059e8c9c59d07dfb635c44386c6$__906328b6d97290611d40908690600401613931565b602060405180830381865af4158015611d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7f9190613a0e565b6040519092506001600160a01b038316907f970cbcaabfe7c54976df22e530fb6ef3a9202796c410ae94972a9b109d5b2ca8905f90a250919050565b611dc482610915565b611dcd8161203a565b61096083836120f1565b5f80611de28161203a565b6007546040516302a8408560e11b81526001600160a01b03918216600482015233602482018190528683166044830152918516606482015273__$c583a0fe7c050ce40cdddde89e71ac1899$__90630550810a90608401602060405180830381865af4158015611e54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e789190613a0e565b6040519093506001600160a01b038416907f798adeb18dd44bd81e89d3ab4aa52d11e6d22b3ab80b11da6844ec0eda2a0810905f90a2505092915050565b5f61088281836124a5565b6060611ecc5f612047565b6001600160401b03811115611ee357611ee3612ab6565b604051908082528060200260200182016040528015611f0c578160200160208202803683370190505b5090505f5b81518110156117b957611f245f826124a5565b828281518110611f3657611f36613409565b6001600160a01b0390921660209283029190910190910152600101611f11565b5f80611f618161203a565b60065460405163d41bcfc560e01b8152339173__$74708c40afd3f014cbcff13274aefc3e53$__9163d41bcfc591611fb1916001600160a01b039091169085908c908c908c908c90600401613af6565b602060405180830381865af4158015611fcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ff09190613a0e565b9250611ffc5f846125de565b506040516001600160a01b038416907ffa970ff5f178441bbe297db8d35a584c9bd6628b17b82d80dc8f5b80063102ca905f90a25050949350505050565b61204481336125f2565b50565b5f610882825490565b5f5f80516020613be18339815191526120698484611838565b6120e8575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561209e3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610882565b5f915050610882565b5f5f80516020613be183398151915261210a8484611838565b156120e8575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610882565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610882565b5f80805b83518110156121d3576121c76121c48583815181106121b7576121b7613409565b602002602001015161262b565b90565b90911790600101612196565b5080611826565b6001600160a01b0383166122015760405163de0ce17d60e01b815260040160405180910390fd5b61220a81612648565b61222a57604051632e40743360e01b815260048101829052602401611358565b6001600160a01b0382165f9081526009602052604090205481846001600160a01b0316846001600160a01b03167f89733de2d64cea40de091169750607b26e8d46142312fba65fb6476c790bad498460405161228891815260200190565b60405180910390a45f9081526008602090815260408083206001600160a01b03968716845282528083209490951682529290925291902055565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061234857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661233c5f80516020613bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156123665760405163703e46dd60e11b815260040160405180910390fd5b565b5f61130a8161203a565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156123cc575060408051601f3d908101601f191682019092526123c9918101906133f2565b60015b6123f457604051634c9c8ce360e01b81526001600160a01b0383166004820152602401611358565b5f80516020613bc1833981519152811461242457604051632a87526960e21b815260048101829052602401611358565b6109998383612661565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146123665760405163703e46dd60e11b815260040160405180910390fd5b606061182683835f6126b6565b6001600160a01b0381165f9081526001830160205260408120541515611826565b5f611826838361274c565b5f6113a0848484612772565b60605f6124c883612796565b60010190505f816001600160401b038111156124e6576124e6612ab6565b6040519080825280601f01601f191660200182016040528015612510576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461251a57509392505050565b5f81600a81111561255e5761255e613515565b6001901b831615159392505050565b60605f80846001600160a01b0316846040516125899190613ba5565b5f60405180830381855af49150503d805f81146125c1576040519150601f19603f3d011682016040523d82523d5f602084013e6125c6565b606091505b509150915061147b85838361286d565b6123666128c2565b5f611826836001600160a01b0384166128e7565b6125fc8282611838565b61130a5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401611358565b5f61088282600a81111561264157612641613515565b6001901b90565b5f8061265760016104006138b0565b9092111592915050565b61266a82612933565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156126ae57610999828261256d565b61130a612996565b6060814710156126e25760405163cf47918160e01b815247600482015260248101839052604401611358565b5f80856001600160a01b031684866040516126fd9190613ba5565b5f6040518083038185875af1925050503d805f8114612737576040519150601f19603f3d011682016040523d82523d5f602084013e61273c565b606091505b50915091506112e586838361286d565b5f825f01828154811061276157612761613409565b905f5260205f200154905092915050565b5f825f19048411830215820261278f5763ad251c275f526004601cfd5b5091020490565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106127d45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612800576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061281e57662386f26fc10000830492506010015b6305f5e1008310612836576305f5e100830492506008015b612710831061284a57612710830492506004015b6064831061285c576064830492506002015b600a83106108825760010192915050565b6060826128825761287d826129b5565b611826565b815115801561289957506001600160a01b0384163b155b156121d357604051639996b31560e01b81526001600160a01b0385166004820152602401611358565b6128ca6129de565b61236657604051631afcd79f60e31b815260040160405180910390fd5b5f81815260018301602052604081205461292c57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610882565b505f610882565b806001600160a01b03163b5f0361296857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401611358565b5f80516020613bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156123665760405163b398979f60e01b815260040160405180910390fd5b8051156129c55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f6129e761216a565b54600160401b900460ff16919050565b6040518060400160405280612a0a612a16565b81525f60209091015290565b60405180604001604052805f8152602001612a4b60405180606001604052806060815260200160608152602001606081525090565b905290565b6001600160a01b0381168114612044575f80fd5b5f60208284031215612a74575f80fd5b813561182681612a50565b5f60208284031215612a8f575f80fd5b81356001600160e01b031981168114611826575f80fd5b8035612ab181612a50565b919050565b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b0381118282101715612aed57612aed612ab6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612b1b57612b1b612ab6565b604052919050565b5f6001600160401b03821115612b3b57612b3b612ab6565b50601f01601f191660200190565b5f82601f830112612b58575f80fd5b8135612b6b612b6682612b23565b612af3565b818152846020838601011115612b7f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f8060808587031215612bae575f80fd5b8435612bb981612a50565b93506020850135612bc981612a50565b92506040850135915060608501356001600160401b03811115612bea575f80fd5b612bf687828801612b49565b91505092959194509250565b5f60208284031215612c12575f80fd5b5035919050565b5f8060408385031215612c2a575f80fd5b823591506020830135612c3c81612a50565b809150509250929050565b5f6001600160401b03821115612c5f57612c5f612ab6565b5060051b60200190565b5f82601f830112612c78575f80fd5b81356020612c88612b6683612c47565b8083825260208201915060208460051b870101935086841115612ca9575f80fd5b602086015b84811015612cce578035612cc181612a50565b8352918301918301612cae565b509695505050505050565b5f805f805f60a08688031215612ced575f80fd5b8535612cf881612a50565b94506020868101356001600160401b0380821115612d14575f80fd5b818901915089601f830112612d27575f80fd5b8135612d35612b6682612c47565b81815260059190911b8301840190848101908c831115612d53575f80fd5b938501935b82851015612d7a578435612d6b81612a50565b82529385019390850190612d58565b9850612d8b91505060408a01612aa6565b9550612d9960608a01612aa6565b94506080890135925080831115612dae575f80fd5b5050612dbc88828901612c69565b9150509295509295909350565b5f805f805f60a08688031215612ddd575f80fd5b8535612de881612a50565b9450602086013593506040860135612dff81612a50565b92506060860135612e0f81612a50565b949793965091946080013592915050565b5f8060408385031215612e31575f80fd5b8235612e3c81612a50565b915060208301356001600160401b03811115612e56575f80fd5b612e6285828601612b49565b9150509250929050565b5f5b83811015612e86578181015183820152602001612e6e565b50505f910152565b5f8151808452612ea5816020860160208601612e6c565b601f01601f19169290920160200192915050565b602081525f6118266020830184612e8e565b5f805f60408486031215612edd575f80fd5b8335612ee881612a50565b925060208401356001600160401b0380821115612f03575f80fd5b818601915086601f830112612f16575f80fd5b813581811115612f24575f80fd5b876020828501011115612f35575f80fd5b6020830194508093505050509250925092565b5f805f8060808587031215612f5b575f80fd5b8435612f6681612a50565b9350602085013592506040850135612f7d81612a50565b9396929550929360600135925050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015612fe257603f19888603018452612fd0858351612e8e565b94509285019290850190600101612fb4565b5092979650505050505050565b5f805f60608486031215613001575f80fd5b83359250602084013561301381612a50565b9150604084013561302381612a50565b809150509250925092565b5f805f60608486031215613040575f80fd5b833561304b81612a50565b9250602084013561305b81612a50565b91506040840135600b8110613023575f80fd5b5f806040838503121561307f575f80fd5b823561308a81612a50565b946020939093013593505050565b5f60208083850312156130a9575f80fd5b82356001600160401b038111156130be575f80fd5b8301601f810185136130ce575f80fd5b80356130dc612b6682612c47565b81815260059190911b820183019083810190878311156130fa575f80fd5b928401925b82841015613118578335825292840192908401906130ff565b979650505050505050565b5f805f60608486031215613135575f80fd5b833561314081612a50565b9250602084013561315081612a50565b929592945050506040919091013590565b5f8060208385031215613172575f80fd5b82356001600160401b0380821115613188575f80fd5b818501915085601f83011261319b575f80fd5b8135818111156131a9575f80fd5b8660208260051b85010111156131bd575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015612fe257603f19888603018452613212858351612e8e565b945092850192908501906001016131f6565b803563ffffffff81168114612ab1575f80fd5b5f6101408284031215613248575f80fd5b613250612aca565b61325983612aa6565b815261326760208401613224565b602082015261327860408401613224565b604082015261328960608401612aa6565b606082015261329a60808401612aa6565b60808201526132ab60a08401612aa6565b60a08201526132bc60c08401612aa6565b60c082015260e083013560e08201526101008084013581830152506101206132e5818501612aa6565b908201529392505050565b5f8060408385031215613301575f80fd5b823561330c81612a50565b91506020830135612c3c81612a50565b5f815180845260208085019450602084015f5b838110156133545781516001600160a01b03168752958201959082019060010161332f565b509495945050505050565b602081525f611826602083018461331c565b5f60c08284031215613381575f80fd5b50919050565b5f805f8084860361026081121561339c575f80fd5b6133a68787613371565b945060a060bf19820112156133b9575f80fd5b60c086019350604061015f19820112156133d1575f80fd5b50610160850191506133e7866101a08701613371565b905092959194509250565b5f60208284031215613402575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561335457815180518852838101518489015260408082015190890152606080820151908901526080908101519088015260a09096019590820190600101613430565b848152608060208201525f61348e608083018661331c565b82810360408401526134a0818661341d565b90508281036060840152613118818561341d565b5f60608201858352602060018060a01b038087166020860152606060408601528286518085526080870191506020880194505f5b818110156135065785518416835294840194918401916001016134e8565b50909998505050505050505050565b634e487b7160e01b5f52602160045260245ffd5b5f815180845260208085019450602084015f5b838110156133545781518752958201959082019060010161353c565b6001600160a01b03831681526040602082018190525f906113a090830184613529565b5f815160408452805160408501526020808201519150604060608601528151606060808701526135ae60e0870182613529565b82840151607f19888303810160a08a0152815180845291850193505f929091908501905b808410156135f257845182529385019360019390930192908501906135d2565b5060408601519550818982030160c08a015261360e8187613529565b978501516001600160a01b03169890940197909752509395945050505050565b602081525f611826602083018461357b565b5f60208284031215613650575f80fd5b81518015158114611826575f80fd5b5f60a0828403121561366f575f80fd5b60405160a081018181106001600160401b038211171561369157613691612ab6565b806040525082518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b8051612ab181612a50565b5f6101008083850312156136e9575f80fd5b604051908101906001600160401b038211818310171561370b5761370b612ab6565b8160405283518152602084015160208201526040840151915061372d82612a50565b81604082015261373f606085016136cc565b6060820152613750608085016136cc565b608082015261376160a085016136cc565b60a082015261377260c085016136cc565b60c082015261378360e085016136cc565b60e0820152949350505050565b5f602082840312156137a0575f80fd5b81516001600160401b038111156137b5575f80fd5b8201601f810184136137c5575f80fd5b80516137d3612b6682612b23565b8181528560208385010111156137e7575f80fd5b61147b826020830160208601612e6c565b66029b4bd32903e160cd1b81525f8551613819816007850160208a01612e6c565b8083019050620103e160ed1b806007830152865161383e81600a850160208b01612e6c565b600a9201918201819052855161385b81600d850160208a01612e6c565b600d9201918201528351613876816010840160208801612e6c565b016010019695505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016138a9576138a9613884565b5060010190565b8181038181111561088257610882613884565b5f808335601e198436030181126138d8575f80fd5b8301803591506001600160401b038211156138f1575f80fd5b602001915036819003821315613905575f80fd5b9250929050565b828482375f8382015f81528351613927818360208801612e6c565b0195945050505050565b81516001600160a01b031681526101408101602083015161395a602084018263ffffffff169052565b506040830151613972604084018263ffffffff169052565b50606083015161398d60608401826001600160a01b03169052565b5060808301516139a860808401826001600160a01b03169052565b5060a08301516139c360a08401826001600160a01b03169052565b5060c08301516139de60c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120808401516001600160a01b03811682850152611aa5565b5f60208284031215613a1e575f80fd5b815161182681612a50565b8035613a3481612a50565b6001600160a01b0316825260208101356001600160401b038116808214613a59575f80fd5b80602085015250505050565b8035613a7081612a50565b6001600160a01b039081168352602082013590613a8c82612a50565b9081166020840152604082013590613aa382612a50565b9081166040840152606082013590613aba82612a50565b9081166060840152608082013590613ad182612a50565b908116608084015260a082013590613ae882612a50565b80821660a085015250505050565b5f6102a08201905060018060a01b0380891683528088166020840152863560408401526020870135606084015260408701356080840152606087013560a0840152608087013560c084015260a0870135613b4f81612a50565b1660e083015284356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152613b976101a0830185613a29565b6131186101e0830184613a65565b5f8251613bb6818460208701612e6c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212203e2ff6e9949a3a0b0e6597a1fc519b173d8a5c56a732f96cd12408123f6b4b4c64736f6c63430008170033", - "sourceMap": "3419:10778:268:-:0;;;1171:4:87;1128:48;;3755:53:268;;;;;;;;;-1:-1:-1;3779:22:268;:20;:22::i;:::-;3419:10778;;7709:422:86;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:86;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:86;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:86;-1:-1:-1;;;;;8033:33:86;;;;;8085:29;;158:50:476;;;8085:29:86;;146:2:476;131:18;8085:29:86;;;;;;;7979:146;7758:373;7709:422::o;14:200:476:-;3419:10778:268;;;;;;;;;;;;;;;;;;;;;;", + "object": "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051613208620001005f395f81816119ea01528181611a130152611b5601526132085ff3fe60806040526004361061025f575f3560e01c806386eeeb5a1161013f578063ad3cb1cc116100b3578063d152e23611610078578063d152e23614610762578063d547741f14610781578063e8d353c7146107a0578063eb44fdd3146107bf578063ec2c9016146107de578063f0fb716f146107ff575f80fd5b8063ad3cb1cc146106b6578063b1ef804d146106e6578063b4cd6bd114610705578063c4d66de814610724578063c8fb624714610743575f80fd5b80639e42bfa3116101045780639e42bfa3146106065780639feffdb014610625578063a217fddf14610644578063a78ec6ae14610657578063a7b2b31014610676578063ac9650d81461068a575f80fd5b806386eeeb5a1461056b57806388d765201461058a57806391c769ce146105a957806391d14854146105c8578063973cf867146105e7575f80fd5b806352d1902d116101d65780636ec934da1161019b5780636ec934da146104865780636ed41835146104a5578063732218f9146104c45780637643d7ec146104e35780637b8dedad1461050457806381de274c14610540575f80fd5b806352d1902d146103de57806354fd4d50146103f25780635ec49544146104295780635fb7f10c14610448578063678b9bad14610467575f80fd5b806327fa35c31161022757806327fa35c31461033b5780632f2ff15d1461034f57806336568abe1461036e57806337c11b2a1461038d578063495e6d89146103ac5780634f1ef286146103cb575f80fd5b806301a6c8721461026357806301ffc9a7146102845780631286a2dc146102b85780631e4fcddb146102ef578063248a9ca31461030e575b5f80fd5b34801561026e575f80fd5b5061028261027d36600461222c565b61081e565b005b34801561028f575f80fd5b506102a361029e366004612247565b610884565b60405190151581526020015b60405180910390f35b3480156102c3575f80fd5b506007546102d7906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b3480156102fa575f80fd5b5061028261030936600461222c565b6108ba565b348015610319575f80fd5b5061032d61032836600461227e565b610947565b6040519081526020016102af565b348015610346575f80fd5b5061032d610967565b34801561035a575f80fd5b50610282610369366004612295565b610976565b348015610379575f80fd5b50610282610388366004612295565b610998565b348015610398575f80fd5b50600a546102d7906001600160a01b031681565b3480156103b7575f80fd5b5061032d6103c63660046122c3565b6109d0565b6102826103d93660046123cf565b610a67565b3480156103e9575f80fd5b5061032d610a86565b3480156103fd575f80fd5b5060408051808201909152600681526576312e382e3160d01b60208201525b6040516102af91906124a8565b348015610434575f80fd5b5061041c6104433660046124ba565b610aa1565b348015610453575f80fd5b5061032d6104623660046122c3565b610b20565b348015610472575f80fd5b506102a3610481366004612537565b610b70565b348015610491575f80fd5b506102a36104a036600461222c565b610bf3565b3480156104b0575f80fd5b506102826104bf3660046125c8565b610bfe565b3480156104cf575f80fd5b506102826104de366004612680565b610c0a565b3480156104ee575f80fd5b506104f7610cb8565b6040516102af91906126c3565b34801561050f575f80fd5b5061032d61051e366004612725565b600860209081525f938452604080852082529284528284209052825290205481565b34801561054b575f80fd5b5061032d61055a36600461222c565b60096020525f908152604090205481565b348015610576575f80fd5b506102a3610585366004612764565b610fe6565b348015610595575f80fd5b506102826105a43660046127a4565b611056565b3480156105b4575f80fd5b506102826105c33660046127f4565b6110d8565b3480156105d3575f80fd5b506102a36105e2366004612295565b6110e3565b3480156105f2575f80fd5b506006546102d7906001600160a01b031681565b348015610611575f80fd5b5061028261062036600461281e565b611119565b348015610630575f80fd5b506102a361063f366004612537565b611126565b34801561064f575f80fd5b5061032d5f81565b348015610662575f80fd5b506102a361067136600461284f565b61116e565b348015610681575f80fd5b506102826111d3565b348015610695575f80fd5b506106a96106a436600461288d565b61121e565b6040516102af91906128fb565b3480156106c1575f80fd5b5061041c604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156106f1575f80fd5b50610282610700366004612680565b611303565b348015610710575f80fd5b5061028261071f36600461222c565b61134e565b34801561072f575f80fd5b5061028261073e36600461222c565b6113db565b34801561074e575f80fd5b5061028261075d36600461281e565b61156c565b34801561076d575f80fd5b506102d761077c366004612963565b611576565b34801561078c575f80fd5b5061028261079b366004612295565b611633565b3480156107ab575f80fd5b506102d76107ba366004612a1c565b61164f565b3480156107ca575f80fd5b506102d76107d936600461227e565b61172e565b3480156107e9575f80fd5b506107f2611739565b6040516102af9190612a48565b34801561080a575f80fd5b506102d7610819366004612aaa565b6117ce565b5f610828816118b2565b600a546040516001600160a01b038085169216907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae905f90a350600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160e01b03198216637965db0b60e01b14806108b457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6108c4816118b2565b6001600160a01b0382166108eb5760405163de0ce17d60e01b815260040160405180910390fd5b6007546040516001600160a01b038085169216907faefd875bf3940c57f185da0affbb82ce03656890d6e1d29310e8b4bf9d20b7c1905f90a350600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f9081525f805160206131b3833981519152602052604090206001015490565b5f6109715f6118bc565b905090565b61097f82610947565b610988816118b2565b61099283836118c5565b50505050565b6001600160a01b03811633146109c15760405163334bd91960e11b815260040160405180910390fd5b6109cb8282611966565b505050565b600a5460405163495e6d8960e01b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f92169063495e6d899060a4015b602060405180830381865afa158015610a37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5b9190612b15565b90505b95945050505050565b610a6f6119df565b610a7882611a85565b610a828282611a8f565b5050565b5f610a8f611b4b565b505f8051602061319383398151915290565b6060610aac84610bf3565b610ad95760405163e2a7bea360e01b81526001600160a01b03851660048201526024015b60405180910390fd5b610b188484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b9492505050565b949350505050565b600a546040516317edfc4360e21b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f921690635fb7f10c9060a401610a1c565b600a5460405163678b9bad60e01b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f92169063678b9bad906084015b602060405180830381865afa158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5e9190612b2c565b5f6108b48183611ba1565b6109cb83838333611056565b610c163382600b610fe6565b610c55573381600b5b60405163062709f360e41b81526001600160a01b03938416600482015292909116602483015260ff166044820152606401610ad0565b600a546040516301bc3d7160e71b81526001600160a01b039091169063de1eb88090610c879084908690600401612b5f565b5f604051808303815f87803b158015610c9e575f80fd5b505af1158015610cb0573d5f803e3d5ffd5b505050505050565b6060610cc35f6118bc565b6001600160401b03811115610cda57610cda61231a565b604051908082528060200260200182016040528015610d0d57816020015b6060815260200190600190039081610cf85790505b5090505f5b8151811015610fe2575f610d268183611bc2565b90505f610da06064836001600160a01b0316637c90a6ca6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610d6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8e9190612bb4565b60200151670de0b6b3a7640000611bcd565b9050816001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190612c0d565b604001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610e41573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e689190810190612cc6565b826001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa158015610ea5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec99190612c0d565b606001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f07573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f2e9190810190612cc6565b610f3783611bd9565b846001600160a01b03166354fd4d506040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f72573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f999190810190612cc6565b604051602001610fac9493929190612d2e565b604051602081830303815290604052848481518110610fcd57610fcd612dba565b60209081029190910101525050600101610d12565b5090565b5f826001600160a01b0316846001600160a01b0316036110085750600161104f565b6001600160a01b038084165f8181526009602090815260408083205480845260088352818420958a168452948252808320938352929052205461104b9084611c68565b9150505b9392505050565b6110623382600b610fe6565b61106f573381600b610c1f565b600a546040516318d5932d60e01b81526001600160a01b03909116906318d5932d906110a5908490889088908890600401612dce565b5f604051808303815f87803b1580156110bc575f80fd5b505af11580156110ce573d5f803e3d5ffd5b5050505050505050565b610a82823383611c8a565b5f9182525f805160206131b3833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6111238133610c0a565b50565b600a546040516309feffdb60e41b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f921690639feffdb090608401610bb4565b5f826001600160a01b0316846001600160a01b0316036111905750600161104f565b506001600160a01b038281165f8181526009602090815260408083205483526008825280832094881683529381528382209282529190915220548116811461104f565b60405133907fecbee29490a7e5456f4e3aab0700477764e3f16dda5a21ea92f43f1cfcb15799905f90a2335f90815260096020526040812080549161121783612e6a565b9190505550565b604080515f815260208101909152606090826001600160401b038111156112475761124761231a565b60405190808252806020026020018201604052801561127a57816020015b60608152602001906001900390816112655790505b5091505f5b838110156112fb576112d63086868481811061129d5761129d612dba565b90506020028101906112af9190612e95565b856040516020016112c293929190612ede565b604051602081830303815290604052611d72565b8382815181106112e8576112e8612dba565b602090810291909101015260010161127f565b505092915050565b61130f3382600b610fe6565b61131c573381600b610c1f565b600a546040516393c0d3f360e01b81526001600160a01b03909116906393c0d3f390610c879084908690600401612b5f565b5f611358816118b2565b6001600160a01b03821661137f5760405163de0ce17d60e01b815260040160405180910390fd5b6006546040516001600160a01b038085169216907ffb3d0b43c5121de915eeb8fa2fb4bb792b6b05d5d6f3df7630aac9d9e8697312905f90a350600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f6113e4611ddb565b805490915060ff600160401b82041615906001600160401b03165f8115801561140a5750825b90505f826001600160401b031660011480156114255750303b155b905081158015611433575080155b156114515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561147b57845460ff60401b1916600160401b1785555b611483611e03565b61148b611e03565b611493611e03565b61149d5f876118c5565b506114c87f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a876118c5565b506114f37ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab876118c5565b5061151e7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd24038876118c5565b508315610cb057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6111238133611303565b5f80611581816118b2565b60405163145b6cb960e11b815273__$8498e19059e8c9c59d07dfb635c44386c6$__906328b6d972906115b8908690600401612f03565b602060405180830381865af41580156115d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f79190612fe0565b6040519092506001600160a01b038316907f970cbcaabfe7c54976df22e530fb6ef3a9202796c410ae94972a9b109d5b2ca8905f90a250919050565b61163c82610947565b611645816118b2565b6109928383611966565b5f8061165a816118b2565b6007546040516302a8408560e11b81526001600160a01b03918216600482015233602482018190528683166044830152918516606482015273__$c583a0fe7c050ce40cdddde89e71ac1899$__90630550810a90608401602060405180830381865af41580156116cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f09190612fe0565b6040519093506001600160a01b038416907f798adeb18dd44bd81e89d3ab4aa52d11e6d22b3ab80b11da6844ec0eda2a0810905f90a2505092915050565b5f6108b48183611bc2565b60606117445f6118bc565b6001600160401b0381111561175b5761175b61231a565b604051908082528060200260200182016040528015611784578160200160208202803683370190505b5090505f5b8151811015610fe25761179c5f82611bc2565b8282815181106117ae576117ae612dba565b6001600160a01b0390921660209283029190910190910152600101611789565b5f806117d9816118b2565b60065460405163d41bcfc560e01b8152339173__$74708c40afd3f014cbcff13274aefc3e53$__9163d41bcfc591611829916001600160a01b039091169085908c908c908c908c906004016130c8565b602060405180830381865af4158015611844573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118689190612fe0565b92506118745f84611e0b565b506040516001600160a01b038416907ffa970ff5f178441bbe297db8d35a584c9bd6628b17b82d80dc8f5b80063102ca905f90a25050949350505050565b6111238133611e1f565b5f6108b4825490565b5f5f805160206131b38339815191526118de84846110e3565b61195d575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556119133390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506108b4565b5f9150506108b4565b5f5f805160206131b383398151915261197f84846110e3565b1561195d575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506108b4565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611a6557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a595f80516020613193833981519152546001600160a01b031690565b6001600160a01b031614155b15611a835760405163703e46dd60e11b815260040160405180910390fd5b565b5f610a82816118b2565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611ae9575060408051601f3d908101601f19168201909252611ae691810190612b15565b60015b611b1157604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610ad0565b5f805160206131938339815191528114611b4157604051632a87526960e21b815260048101829052602401610ad0565b6109cb8383611e58565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a835760405163703e46dd60e11b815260040160405180910390fd5b606061104f83835f611ead565b6001600160a01b0381165f908152600183016020526040812054151561104f565b5f61104f8383611f4d565b5f610b18848484611f73565b60605f611be583611f97565b60010190505f816001600160401b03811115611c0357611c0361231a565b6040519080825280601f01601f191660200182016040528015611c2d576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611c3757509392505050565b5f81600c811115611c7b57611c7b612b4b565b6001901b831615159392505050565b6001600160a01b038316611cb15760405163de0ce17d60e01b815260040160405180910390fd5b611cba8161206e565b611cda57604051632e40743360e01b815260048101829052602401610ad0565b6001600160a01b0382165f9081526009602052604090205481846001600160a01b0316846001600160a01b03167f89733de2d64cea40de091169750607b26e8d46142312fba65fb6476c790bad4984604051611d3891815260200190565b60405180910390a45f9081526008602090815260408083206001600160a01b03968716845282528083209490951682529290925291902055565b60605f80846001600160a01b031684604051611d8e9190613177565b5f60405180830381855af49150503d805f8114611dc6576040519150601f19603f3d011682016040523d82523d5f602084013e611dcb565b606091505b5091509150610a5e858383612087565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108b4565b611a836120e3565b5f61104f836001600160a01b038416612108565b611e2982826110e3565b610a825760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610ad0565b611e6182612154565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611ea5576109cb8282611d72565b610a826121b7565b606081471015611ed95760405163cf47918160e01b815247600482015260248101839052604401610ad0565b5f80856001600160a01b03168486604051611ef49190613177565b5f6040518083038185875af1925050503d805f8114611f2e576040519150601f19603f3d011682016040523d82523d5f602084013e611f33565b606091505b5091509150611f43868383612087565b9695505050505050565b5f825f018281548110611f6257611f62612dba565b905f5260205f200154905092915050565b5f825f190484118302158202611f905763ad251c275f526004601cfd5b5091020490565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611fd55772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612001576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061201f57662386f26fc10000830492506010015b6305f5e1008310612037576305f5e100830492506008015b612710831061204b57612710830492506004015b6064831061205d576064830492506002015b600a83106108b45760010192915050565b5f8061207d6001611000612e82565b9092111592915050565b60608261209c57612097826121d6565b61104f565b81511580156120b357506001600160a01b0384163b155b156120dc57604051639996b31560e01b81526001600160a01b0385166004820152602401610ad0565b508061104f565b6120eb6121ff565b611a8357604051631afcd79f60e31b815260040160405180910390fd5b5f81815260018301602052604081205461214d57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556108b4565b505f6108b4565b806001600160a01b03163b5f0361218957604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610ad0565b5f8051602061319383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b3415611a835760405163b398979f60e01b815260040160405180910390fd5b8051156121e65780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f612208611ddb565b54600160401b900460ff16919050565b6001600160a01b0381168114611123575f80fd5b5f6020828403121561223c575f80fd5b813561104f81612218565b5f60208284031215612257575f80fd5b81356001600160e01b03198116811461104f575f80fd5b803561227981612218565b919050565b5f6020828403121561228e575f80fd5b5035919050565b5f80604083850312156122a6575f80fd5b8235915060208301356122b881612218565b809150509250929050565b5f805f805f60a086880312156122d7575f80fd5b85356122e281612218565b94506020860135935060408601356122f981612218565b9250606086013561230981612218565b949793965091946080013592915050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156123505761235061231a565b60405290565b60405161014081016001600160401b03811182821017156123505761235061231a565b604051601f8201601f191681016001600160401b03811182821017156123a1576123a161231a565b604052919050565b5f6001600160401b038211156123c1576123c161231a565b50601f01601f191660200190565b5f80604083850312156123e0575f80fd5b82356123eb81612218565b915060208301356001600160401b03811115612405575f80fd5b8301601f81018513612415575f80fd5b8035612428612423826123a9565b612379565b81815286602083850101111561243c575f80fd5b816020840160208301375f602083830101528093505050509250929050565b5f5b8381101561247557818101518382015260200161245d565b50505f910152565b5f815180845261249481602086016020860161245b565b601f01601f19169290920160200192915050565b602081525f61104f602083018461247d565b5f805f604084860312156124cc575f80fd5b83356124d781612218565b925060208401356001600160401b03808211156124f2575f80fd5b818601915086601f830112612505575f80fd5b813581811115612513575f80fd5b876020828501011115612524575f80fd5b6020830194508093505050509250925092565b5f805f806080858703121561254a575f80fd5b843561255581612218565b935060208501359250604085013561256c81612218565b9396929550929360600135925050565b5f60a0828403121561258c575f80fd5b61259461232e565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f805f61016084860312156125db575f80fd5b833592506125ec856020860161257c565b91506125fb8560c0860161257c565b90509250925092565b5f82601f830112612613575f80fd5b813560206001600160401b0382111561262e5761262e61231a565b8160051b61263d828201612379565b9283528481018201928281019087851115612656575f80fd5b83870192505b848310156126755782358252918301919083019061265c565b979650505050505050565b5f8060408385031215612691575f80fd5b82356001600160401b038111156126a6575f80fd5b6126b285828601612604565b92505060208301356122b881612218565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561271857603f1988860301845261270685835161247d565b945092850192908501906001016126ea565b5092979650505050505050565b5f805f60608486031215612737575f80fd5b83359250602084013561274981612218565b9150604084013561275981612218565b809150509250925092565b5f805f60608486031215612776575f80fd5b833561278181612218565b9250602084013561279181612218565b91506040840135600d8110612759575f80fd5b5f805f8061018085870312156127b8575f80fd5b843593506127c9866020870161257c565b92506127d88660c0870161257c565b91506101608501356127e981612218565b939692955090935050565b5f8060408385031215612805575f80fd5b823561281081612218565b946020939093013593505050565b5f6020828403121561282e575f80fd5b81356001600160401b03811115612843575f80fd5b610b1884828501612604565b5f805f60608486031215612861575f80fd5b833561286c81612218565b9250602084013561287c81612218565b929592945050506040919091013590565b5f806020838503121561289e575f80fd5b82356001600160401b03808211156128b4575f80fd5b818501915085601f8301126128c7575f80fd5b8135818111156128d5575f80fd5b8660208260051b85010111156128e9575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561271857603f1988860301845261293e85835161247d565b94509285019290850190600101612922565b803563ffffffff81168114612279575f80fd5b5f6101408284031215612974575f80fd5b61297c612356565b6129858361226e565b815261299360208401612950565b60208201526129a460408401612950565b60408201526129b56060840161226e565b60608201526129c66080840161226e565b60808201526129d760a0840161226e565b60a08201526129e860c0840161226e565b60c082015260e083013560e0820152610100808401358183015250610120612a1181850161226e565b908201529392505050565b5f8060408385031215612a2d575f80fd5b8235612a3881612218565b915060208301356122b881612218565b602080825282518282018190525f9190848201906040850190845b81811015612a885783516001600160a01b031683529284019291840191600101612a63565b50909695505050505050565b5f60c08284031215612aa4575f80fd5b50919050565b5f805f80848603610260811215612abf575f80fd5b612ac98787612a94565b945060a060bf1982011215612adc575f80fd5b60c086019350604061015f1982011215612af4575f80fd5b5061016085019150612b0a866101a08701612a94565b905092959194509250565b5f60208284031215612b25575f80fd5b5051919050565b5f60208284031215612b3c575f80fd5b8151801515811461104f575f80fd5b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b03831681526040602080830182905283519183018290525f9184820191906060850190845b81811015612ba757845183529383019391830191600101612b8b565b5090979650505050505050565b5f60a08284031215612bc4575f80fd5b612bcc61232e565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b805161227981612218565b5f610100808385031215612c1f575f80fd5b604051908101906001600160401b0382118183101715612c4157612c4161231a565b81604052835181526020840151602082015260408401519150612c6382612218565b816040820152612c7560608501612c02565b6060820152612c8660808501612c02565b6080820152612c9760a08501612c02565b60a0820152612ca860c08501612c02565b60c0820152612cb960e08501612c02565b60e0820152949350505050565b5f60208284031215612cd6575f80fd5b81516001600160401b03811115612ceb575f80fd5b8201601f81018413612cfb575f80fd5b8051612d09612423826123a9565b818152856020838501011115612d1d575f80fd5b610a5e82602083016020860161245b565b66029b4bd32903e160cd1b81525f8551612d4f816007850160208a0161245b565b8083019050620103e160ed1b8060078301528651612d7481600a850160208b0161245b565b600a92019182018190528551612d9181600d850160208a0161245b565b600d9201918201528351612dac81601084016020880161245b565b016010019695505050505050565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b0385168152602081018490526101808101612e1e604083018580518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b825160e08301526020830151610100830152604083015161012083015260608301516101408301526080830151610160830152610a5e565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612e7b57612e7b612e56565b5060010190565b818103818111156108b4576108b4612e56565b5f808335601e19843603018112612eaa575f80fd5b8301803591506001600160401b03821115612ec3575f80fd5b602001915036819003821315612ed7575f80fd5b9250929050565b828482375f8382015f81528351612ef981836020880161245b565b0195945050505050565b81516001600160a01b0316815261014081016020830151612f2c602084018263ffffffff169052565b506040830151612f44604084018263ffffffff169052565b506060830151612f5f60608401826001600160a01b03169052565b506080830151612f7a60808401826001600160a01b03169052565b5060a0830151612f9560a08401826001600160a01b03169052565b5060c0830151612fb060c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120808401516001600160a01b038116828501526112fb565b5f60208284031215612ff0575f80fd5b815161104f81612218565b803561300681612218565b6001600160a01b0316825260208101356001600160401b03811680821461302b575f80fd5b80602085015250505050565b803561304281612218565b6001600160a01b03908116835260208201359061305e82612218565b908116602084015260408201359061307582612218565b908116604084015260608201359061308c82612218565b90811660608401526080820135906130a382612218565b908116608084015260a0820135906130ba82612218565b80821660a085015250505050565b5f6102a08201905060018060a01b0380891683528088166020840152863560408401526020870135606084015260408701356080840152606087013560a0840152608087013560c084015260a087013561312181612218565b1660e0830152843561010083015260208501356101208301526040850135610140830152606085013561016083015260808501356101808301526131696101a0830185612ffb565b6126756101e0830184613037565b5f825161318881846020870161245b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212204a06383b44d8de699bf87696a34408a27b032833876bb17147f11c2dc8539a1b64736f6c63430008170033", + "sourceMap": "3419:9203:265:-:0;;;1171:4:88;1128:48;;3706:53:265;;;;;;;;;-1:-1:-1;3730:22:265;:20;:22::i;:::-;3419:9203;;7709:422:87;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:87;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:87;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:87;-1:-1:-1;;;;;8033:33:87;;;;;8085:29;;158:50:486;;;8085:29:87;;146:2:486;131:18;8085:29:87;;;;;;;7979:146;7758:373;7709:422::o;14:200:486:-;3419:9203:265;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": { "src/factory/libraries/MarketFactoryLibrary.sol": { - "MarketFactoryLibrary": [{ "start": 8309, "length": 20 }] + "MarketFactoryLibrary": [{ "start": 6381, "length": 20 }] }, "src/factory/libraries/NonTransferrableRebasingTokenVaultLibrary.sol": { "NonTransferrableRebasingTokenVaultLibrary": [ - { "start": 7964, "length": 20 } + { "start": 6036, "length": 20 } ] }, "src/factory/libraries/PriceFeedFactoryLibrary.sol": { - "PriceFeedFactoryLibrary": [{ "start": 7704, "length": 20 }] + "PriceFeedFactoryLibrary": [{ "start": 5776, "length": 20 }] } } }, "deployedBytecode": { - "object": "0x608060405260043610610249575f3560e01c806381de274c11610134578063ac9650d8116100b3578063d152e23611610078578063d152e23614610730578063d547741f1461074f578063e8d353c71461076e578063eb44fdd31461078d578063ec2c9016146107ac578063f0fb716f146107cd575f80fd5b8063ac9650d814610677578063ad3cb1cc146106a3578063b4cd6bd1146106d3578063c4d66de8146106f2578063c8fb624714610711575f80fd5b80639e42bfa3116100f95780639e42bfa3146105f35780639feffdb014610612578063a217fddf14610631578063a78ec6ae14610644578063a7b2b31014610663575f80fd5b806381de274c1461054c57806386eeeb5a1461057757806391c769ce1461059657806391d14854146105b5578063973cf867146105d4575f80fd5b80634481f4d1116101cb5780635ec49544116101905780635ec49544146104735780635fb7f10c14610492578063678b9bad146104b15780636ec934da146104d05780637643d7ec146104ef5780637b8dedad14610510575f80fd5b80634481f4d1146103d9578063495e6d89146103f85780634f1ef2861461041757806352d1902d1461042a57806354fd4d501461043e575f80fd5b8063248a9ca311610211578063248a9ca31461033b57806327fa35c3146103685780632f2ff15d1461037c57806336568abe1461039b57806337c11b2a146103ba575f80fd5b806301a6c8721461024d57806301ffc9a71461026e5780631286a2dc146102a2578063150b7a02146102d95780631e4fcddb1461031c575b5f80fd5b348015610258575f80fd5b5061026c610267366004612a64565b6107ec565b005b348015610279575f80fd5b5061028d610288366004612a7f565b610852565b60405190151581526020015b60405180910390f35b3480156102ad575f80fd5b506007546102c1906001600160a01b031681565b6040516001600160a01b039091168152602001610299565b3480156102e4575f80fd5b506103036102f3366004612b9b565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610299565b348015610327575f80fd5b5061026c610336366004612a64565b610888565b348015610346575f80fd5b5061035a610355366004612c02565b610915565b604051908152602001610299565b348015610373575f80fd5b5061035a610935565b348015610387575f80fd5b5061026c610396366004612c19565b610944565b3480156103a6575f80fd5b5061026c6103b5366004612c19565b610966565b3480156103c5575f80fd5b50600a546102c1906001600160a01b031681565b3480156103e4575f80fd5b5061026c6103f3366004612cd9565b61099e565b348015610403575f80fd5b5061035a610412366004612dc9565b61125a565b61026c610425366004612e20565b6112ef565b348015610435575f80fd5b5061035a61130e565b348015610449575f80fd5b5060408051808201909152600481526376312e3760e01b60208201525b6040516102999190612eb9565b34801561047e575f80fd5b5061046661048d366004612ecb565b611329565b34801561049d575f80fd5b5061035a6104ac366004612dc9565b6113a8565b3480156104bc575f80fd5b5061028d6104cb366004612f48565b6113f8565b3480156104db575f80fd5b5061028d6104ea366004612a64565b611484565b3480156104fa575f80fd5b5061050361148f565b6040516102999190612f8d565b34801561051b575f80fd5b5061035a61052a366004612fef565b600860209081525f938452604080852082529284528284209052825290205481565b348015610557575f80fd5b5061035a610566366004612a64565b60096020525f908152604090205481565b348015610582575f80fd5b5061028d61059136600461302e565b6117bd565b3480156105a1575f80fd5b5061026c6105b036600461306e565b61182d565b3480156105c0575f80fd5b5061028d6105cf366004612c19565b611838565b3480156105df575f80fd5b506006546102c1906001600160a01b031681565b3480156105fe575f80fd5b5061026c61060d366004613098565b61186e565b34801561061d575f80fd5b5061028d61062c366004612f48565b6118d0565b34801561063c575f80fd5b5061035a5f81565b34801561064f575f80fd5b5061028d61065e366004613123565b611918565b34801561066e575f80fd5b5061026c61197d565b348015610682575f80fd5b50610696610691366004613161565b6119c8565b60405161029991906131cf565b3480156106ae575f80fd5b50610466604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156106de575f80fd5b5061026c6106ed366004612a64565b611aad565b3480156106fd575f80fd5b5061026c61070c366004612a64565b611b3a565b34801561071c575f80fd5b5061026c61072b366004613098565b611ccc565b34801561073b575f80fd5b506102c161074a366004613237565b611cfe565b34801561075a575f80fd5b5061026c610769366004612c19565b611dbb565b348015610779575f80fd5b506102c16107883660046132f0565b611dd7565b348015610798575f80fd5b506102c16107a7366004612c02565b611eb6565b3480156107b7575f80fd5b506107c0611ec1565b604051610299919061335f565b3480156107d8575f80fd5b506102c16107e7366004613387565b611f56565b5f6107f68161203a565b600a546040516001600160a01b038085169216907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae905f90a350600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160e01b03198216637965db0b60e01b148061088257506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6108928161203a565b6001600160a01b0382166108b95760405163de0ce17d60e01b815260040160405180910390fd5b6007546040516001600160a01b038085169216907faefd875bf3940c57f185da0affbb82ce03656890d6e1d29310e8b4bf9d20b7c1905f90a350600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f9081525f80516020613be1833981519152602052604090206001015490565b5f61093f5f612047565b905090565b61094d82610915565b6109568161203a565b6109608383612050565b50505050565b6001600160a01b038116331461098f5760405163334bd91960e11b815260040160405180910390fd5b61099982826120f1565b505050565b5f6109a88161203a565b612a305f6109b461216a565b8054909150600160401b900460ff16806109db575080546001600160401b03808416911610155b156109f95760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556001600160a01b038816610a415760405163de0ce17d60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b038a169081179091556040515f907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae908290a36001600160a01b0386161580610aa657506001600160a01b038516155b611209576040805160018082528183019092525f91602080830190803683375050600a546040805163191fc6a760e21b815290519394506001600160a01b039091169263647f1a9c9250600480830192602092919082900301815f875af1158015610b13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3791906133f2565b815f81518110610b4957610b49613409565b6020026020010181815250505f85516001600160401b03811115610b6f57610b6f612ab6565b604051908082528060200260200182016040528015610bcd57816020015b610bba6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b815260200190600190039081610b8d5790505b5090505f86516001600160401b03811115610bea57610bea612ab6565b604051908082528060200260200182016040528015610c4857816020015b610c356040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b815260200190600190039081610c085790505b5090505f5b8751811015610cec576040518060a001604052805f81526020015f81526020015f81526020015f8152602001600160ff1b815250838281518110610c9357610c93613409565b60200260200101819052506040518060a001604052805f81526020015f1981526020015f81526020015f1981526020015f815250828281518110610cd957610cd9613409565b6020908102919091010152600101610c4d565b50600a5483516001600160a01b03909116906315d5cf999085905f90610d1457610d14613409565b60200260200101518984866040518563ffffffff1660e01b8152600401610d3e9493929190613476565b5f604051808303815f87803b158015610d55575f80fd5b505af1158015610d67573d5f803e3d5ffd5b505f925060019150610d769050565b604051908082528060200260200182016040528015610d9f578160200160208202803683370190505b50905088815f81518110610db557610db5613409565b60200260200101906001600160a01b031690816001600160a01b0316815250505f5b8851811015610e8157600a5485516001600160a01b039091169063eb379a589087905f90610e0757610e07613409565b60200260200101518b8481518110610e2157610e21613409565b6020026020010151856040518463ffffffff1660e01b8152600401610e48939291906134b4565b5f604051808303815f87803b158015610e5f575f80fd5b505af1158015610e71573d5f803e3d5ffd5b505060019092019150610dd79050565b506040805160028082526060820183525f926020830190803683370190505090506002815f81518110610eb657610eb6613409565b6020026020010190600a811115610ecf57610ecf613515565b9081600a811115610ee257610ee2613515565b81525050600381600181518110610efb57610efb613409565b6020026020010190600a811115610f1457610f14613515565b9081600a811115610f2757610f27613515565b9052505f5b8c5181101561117257600a548d516001600160a01b03909116906393c0d3f3908f9084908110610f5e57610f5e613409565b6020026020010151886040518363ffffffff1660e01b8152600401610f84929190613558565b5f604051808303815f87803b158015610f9b575f80fd5b505af1158015610fad573d5f803e3d5ffd5b50505050610fdd308e8381518110610fc757610fc7613409565b6020026020010151610fd885612192565b6121da565b5f5b8a5181101561114457610ff06129f7565b8e838151811061100257611002613409565b6020908102919091018101516001600160a01b0316908201528b518c908390811061102f5761102f613409565b60200260200101516001600160a01b03166353e043d4826040518263ffffffff1660e01b8152600401611062919061362e565b5f604051808303815f87803b158015611079575f80fd5b505af115801561108b573d5f803e3d5ffd5b505050506110976129f7565b8f84815181106110a9576110a9613409565b6020908102919091018101516001600160a01b0316908201528c518d90849081106110d6576110d6613409565b60200260200101516001600160a01b0316634fd9a8a5826040518263ffffffff1660e01b8152600401611109919061362e565b5f604051808303815f87803b158015611120575f80fd5b505af1158015611132573d5f803e3d5ffd5b505060019094019350610fdf92505050565b5061116a308e838151811061115b5761115b613409565b6020026020010151610fd85f90565b600101610f2c565b508c6001600160a01b03166342842e0e308d885f8151811061119657611196613409565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064015f604051808303815f87803b1580156111ed575f80fd5b505af11580156111ff573d5f803e3d5ffd5b5050505050505050505b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b600a5460405163495e6d8960e01b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f92169063495e6d899060a4015b602060405180830381865afa1580156112c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e591906133f2565b9695505050505050565b6112f76122c2565b61130082612368565b61130a8282612372565b5050565b5f61131761242e565b505f80516020613bc183398151915290565b606061133484611484565b6113615760405163e2a7bea360e01b81526001600160a01b03851660048201526024015b60405180910390fd5b6113a08484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061247792505050565b949350505050565b600a546040516317edfc4360e21b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f921690635fb7f10c9060a4016112a6565b600a5460405163678b9bad60e01b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f92169063678b9bad906084015b602060405180830381865afa158015611457573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147b9190613640565b95945050505050565b5f6108828183612484565b606061149a5f612047565b6001600160401b038111156114b1576114b1612ab6565b6040519080825280602002602001820160405280156114e457816020015b60608152602001906001900390816114cf5790505b5090505f5b81518110156117b9575f6114fd81836124a5565b90505f6115776064836001600160a01b0316637c90a6ca6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611541573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611565919061365f565b60200151670de0b6b3a76400006124b0565b9050816001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa1580156115b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115da91906136d7565b604001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015611618573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261163f9190810190613790565b826001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa15801561167c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a091906136d7565b606001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156116de573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117059190810190613790565b61170e836124bc565b846001600160a01b03166354fd4d506040518163ffffffff1660e01b81526004015f60405180830381865afa158015611749573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117709190810190613790565b60405160200161178394939291906137f8565b6040516020818303038152906040528484815181106117a4576117a4613409565b602090810291909101015250506001016114e9565b5090565b5f826001600160a01b0316846001600160a01b0316036117df57506001611826565b6001600160a01b038084165f8181526009602090815260408083205480845260088352818420958a1684529482528083209383529290522054611822908461254b565b9150505b9392505050565b61130a8233836121da565b5f9182525f80516020613be1833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600a546040516301bc3d7160e71b81526001600160a01b039091169063de1eb880906118a09033908590600401613558565b5f604051808303815f87803b1580156118b7575f80fd5b505af11580156118c9573d5f803e3d5ffd5b5050505050565b600a546040516309feffdb60e41b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f921690639feffdb09060840161143c565b5f826001600160a01b0316846001600160a01b03160361193a57506001611826565b506001600160a01b038281165f81815260096020908152604080832054835260088252808320948816835293815283822092825291909152205481168114611826565b60405133907fecbee29490a7e5456f4e3aab0700477764e3f16dda5a21ea92f43f1cfcb15799905f90a2335f9081526009602052604081208054916119c183613898565b9190505550565b604080515f815260208101909152606090826001600160401b038111156119f1576119f1612ab6565b604051908082528060200260200182016040528015611a2457816020015b6060815260200190600190039081611a0f5790505b5091505f5b83811015611aa557611a8030868684818110611a4757611a47613409565b9050602002810190611a5991906138c3565b85604051602001611a6c9392919061390c565b60405160208183030381529060405261256d565b838281518110611a9257611a92613409565b6020908102919091010152600101611a29565b505092915050565b5f611ab78161203a565b6001600160a01b038216611ade5760405163de0ce17d60e01b815260040160405180910390fd5b6006546040516001600160a01b038085169216907ffb3d0b43c5121de915eeb8fa2fb4bb792b6b05d5d6f3df7630aac9d9e8697312905f90a350600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f611b4361216a565b805490915060ff600160401b82041615906001600160401b03165f81158015611b695750825b90505f826001600160401b03166001148015611b845750303b155b905081158015611b92575080155b15611bb05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611bda57845460ff60401b1916600160401b1785555b611be26125d6565b611bea6125d6565b611bf26125d6565b611bfc5f87612050565b50611c277f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87612050565b50611c527ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab87612050565b50611c7d7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd2403887612050565b508315611cc457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600a546040516393c0d3f360e01b81526001600160a01b03909116906393c0d3f3906118a09033908590600401613558565b5f80611d098161203a565b60405163145b6cb960e11b815273__$8498e19059e8c9c59d07dfb635c44386c6$__906328b6d97290611d40908690600401613931565b602060405180830381865af4158015611d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7f9190613a0e565b6040519092506001600160a01b038316907f970cbcaabfe7c54976df22e530fb6ef3a9202796c410ae94972a9b109d5b2ca8905f90a250919050565b611dc482610915565b611dcd8161203a565b61096083836120f1565b5f80611de28161203a565b6007546040516302a8408560e11b81526001600160a01b03918216600482015233602482018190528683166044830152918516606482015273__$c583a0fe7c050ce40cdddde89e71ac1899$__90630550810a90608401602060405180830381865af4158015611e54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e789190613a0e565b6040519093506001600160a01b038416907f798adeb18dd44bd81e89d3ab4aa52d11e6d22b3ab80b11da6844ec0eda2a0810905f90a2505092915050565b5f61088281836124a5565b6060611ecc5f612047565b6001600160401b03811115611ee357611ee3612ab6565b604051908082528060200260200182016040528015611f0c578160200160208202803683370190505b5090505f5b81518110156117b957611f245f826124a5565b828281518110611f3657611f36613409565b6001600160a01b0390921660209283029190910190910152600101611f11565b5f80611f618161203a565b60065460405163d41bcfc560e01b8152339173__$74708c40afd3f014cbcff13274aefc3e53$__9163d41bcfc591611fb1916001600160a01b039091169085908c908c908c908c90600401613af6565b602060405180830381865af4158015611fcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ff09190613a0e565b9250611ffc5f846125de565b506040516001600160a01b038416907ffa970ff5f178441bbe297db8d35a584c9bd6628b17b82d80dc8f5b80063102ca905f90a25050949350505050565b61204481336125f2565b50565b5f610882825490565b5f5f80516020613be18339815191526120698484611838565b6120e8575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561209e3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610882565b5f915050610882565b5f5f80516020613be183398151915261210a8484611838565b156120e8575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610882565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610882565b5f80805b83518110156121d3576121c76121c48583815181106121b7576121b7613409565b602002602001015161262b565b90565b90911790600101612196565b5080611826565b6001600160a01b0383166122015760405163de0ce17d60e01b815260040160405180910390fd5b61220a81612648565b61222a57604051632e40743360e01b815260048101829052602401611358565b6001600160a01b0382165f9081526009602052604090205481846001600160a01b0316846001600160a01b03167f89733de2d64cea40de091169750607b26e8d46142312fba65fb6476c790bad498460405161228891815260200190565b60405180910390a45f9081526008602090815260408083206001600160a01b03968716845282528083209490951682529290925291902055565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061234857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661233c5f80516020613bc1833981519152546001600160a01b031690565b6001600160a01b031614155b156123665760405163703e46dd60e11b815260040160405180910390fd5b565b5f61130a8161203a565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156123cc575060408051601f3d908101601f191682019092526123c9918101906133f2565b60015b6123f457604051634c9c8ce360e01b81526001600160a01b0383166004820152602401611358565b5f80516020613bc1833981519152811461242457604051632a87526960e21b815260048101829052602401611358565b6109998383612661565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146123665760405163703e46dd60e11b815260040160405180910390fd5b606061182683835f6126b6565b6001600160a01b0381165f9081526001830160205260408120541515611826565b5f611826838361274c565b5f6113a0848484612772565b60605f6124c883612796565b60010190505f816001600160401b038111156124e6576124e6612ab6565b6040519080825280601f01601f191660200182016040528015612510576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461251a57509392505050565b5f81600a81111561255e5761255e613515565b6001901b831615159392505050565b60605f80846001600160a01b0316846040516125899190613ba5565b5f60405180830381855af49150503d805f81146125c1576040519150601f19603f3d011682016040523d82523d5f602084013e6125c6565b606091505b509150915061147b85838361286d565b6123666128c2565b5f611826836001600160a01b0384166128e7565b6125fc8282611838565b61130a5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401611358565b5f61088282600a81111561264157612641613515565b6001901b90565b5f8061265760016104006138b0565b9092111592915050565b61266a82612933565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156126ae57610999828261256d565b61130a612996565b6060814710156126e25760405163cf47918160e01b815247600482015260248101839052604401611358565b5f80856001600160a01b031684866040516126fd9190613ba5565b5f6040518083038185875af1925050503d805f8114612737576040519150601f19603f3d011682016040523d82523d5f602084013e61273c565b606091505b50915091506112e586838361286d565b5f825f01828154811061276157612761613409565b905f5260205f200154905092915050565b5f825f19048411830215820261278f5763ad251c275f526004601cfd5b5091020490565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106127d45772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612800576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061281e57662386f26fc10000830492506010015b6305f5e1008310612836576305f5e100830492506008015b612710831061284a57612710830492506004015b6064831061285c576064830492506002015b600a83106108825760010192915050565b6060826128825761287d826129b5565b611826565b815115801561289957506001600160a01b0384163b155b156121d357604051639996b31560e01b81526001600160a01b0385166004820152602401611358565b6128ca6129de565b61236657604051631afcd79f60e31b815260040160405180910390fd5b5f81815260018301602052604081205461292c57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610882565b505f610882565b806001600160a01b03163b5f0361296857604051634c9c8ce360e01b81526001600160a01b0382166004820152602401611358565b5f80516020613bc183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156123665760405163b398979f60e01b815260040160405180910390fd5b8051156129c55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f6129e761216a565b54600160401b900460ff16919050565b6040518060400160405280612a0a612a16565b81525f60209091015290565b60405180604001604052805f8152602001612a4b60405180606001604052806060815260200160608152602001606081525090565b905290565b6001600160a01b0381168114612044575f80fd5b5f60208284031215612a74575f80fd5b813561182681612a50565b5f60208284031215612a8f575f80fd5b81356001600160e01b031981168114611826575f80fd5b8035612ab181612a50565b919050565b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b0381118282101715612aed57612aed612ab6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612b1b57612b1b612ab6565b604052919050565b5f6001600160401b03821115612b3b57612b3b612ab6565b50601f01601f191660200190565b5f82601f830112612b58575f80fd5b8135612b6b612b6682612b23565b612af3565b818152846020838601011115612b7f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f8060808587031215612bae575f80fd5b8435612bb981612a50565b93506020850135612bc981612a50565b92506040850135915060608501356001600160401b03811115612bea575f80fd5b612bf687828801612b49565b91505092959194509250565b5f60208284031215612c12575f80fd5b5035919050565b5f8060408385031215612c2a575f80fd5b823591506020830135612c3c81612a50565b809150509250929050565b5f6001600160401b03821115612c5f57612c5f612ab6565b5060051b60200190565b5f82601f830112612c78575f80fd5b81356020612c88612b6683612c47565b8083825260208201915060208460051b870101935086841115612ca9575f80fd5b602086015b84811015612cce578035612cc181612a50565b8352918301918301612cae565b509695505050505050565b5f805f805f60a08688031215612ced575f80fd5b8535612cf881612a50565b94506020868101356001600160401b0380821115612d14575f80fd5b818901915089601f830112612d27575f80fd5b8135612d35612b6682612c47565b81815260059190911b8301840190848101908c831115612d53575f80fd5b938501935b82851015612d7a578435612d6b81612a50565b82529385019390850190612d58565b9850612d8b91505060408a01612aa6565b9550612d9960608a01612aa6565b94506080890135925080831115612dae575f80fd5b5050612dbc88828901612c69565b9150509295509295909350565b5f805f805f60a08688031215612ddd575f80fd5b8535612de881612a50565b9450602086013593506040860135612dff81612a50565b92506060860135612e0f81612a50565b949793965091946080013592915050565b5f8060408385031215612e31575f80fd5b8235612e3c81612a50565b915060208301356001600160401b03811115612e56575f80fd5b612e6285828601612b49565b9150509250929050565b5f5b83811015612e86578181015183820152602001612e6e565b50505f910152565b5f8151808452612ea5816020860160208601612e6c565b601f01601f19169290920160200192915050565b602081525f6118266020830184612e8e565b5f805f60408486031215612edd575f80fd5b8335612ee881612a50565b925060208401356001600160401b0380821115612f03575f80fd5b818601915086601f830112612f16575f80fd5b813581811115612f24575f80fd5b876020828501011115612f35575f80fd5b6020830194508093505050509250925092565b5f805f8060808587031215612f5b575f80fd5b8435612f6681612a50565b9350602085013592506040850135612f7d81612a50565b9396929550929360600135925050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015612fe257603f19888603018452612fd0858351612e8e565b94509285019290850190600101612fb4565b5092979650505050505050565b5f805f60608486031215613001575f80fd5b83359250602084013561301381612a50565b9150604084013561302381612a50565b809150509250925092565b5f805f60608486031215613040575f80fd5b833561304b81612a50565b9250602084013561305b81612a50565b91506040840135600b8110613023575f80fd5b5f806040838503121561307f575f80fd5b823561308a81612a50565b946020939093013593505050565b5f60208083850312156130a9575f80fd5b82356001600160401b038111156130be575f80fd5b8301601f810185136130ce575f80fd5b80356130dc612b6682612c47565b81815260059190911b820183019083810190878311156130fa575f80fd5b928401925b82841015613118578335825292840192908401906130ff565b979650505050505050565b5f805f60608486031215613135575f80fd5b833561314081612a50565b9250602084013561315081612a50565b929592945050506040919091013590565b5f8060208385031215613172575f80fd5b82356001600160401b0380821115613188575f80fd5b818501915085601f83011261319b575f80fd5b8135818111156131a9575f80fd5b8660208260051b85010111156131bd575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015612fe257603f19888603018452613212858351612e8e565b945092850192908501906001016131f6565b803563ffffffff81168114612ab1575f80fd5b5f6101408284031215613248575f80fd5b613250612aca565b61325983612aa6565b815261326760208401613224565b602082015261327860408401613224565b604082015261328960608401612aa6565b606082015261329a60808401612aa6565b60808201526132ab60a08401612aa6565b60a08201526132bc60c08401612aa6565b60c082015260e083013560e08201526101008084013581830152506101206132e5818501612aa6565b908201529392505050565b5f8060408385031215613301575f80fd5b823561330c81612a50565b91506020830135612c3c81612a50565b5f815180845260208085019450602084015f5b838110156133545781516001600160a01b03168752958201959082019060010161332f565b509495945050505050565b602081525f611826602083018461331c565b5f60c08284031215613381575f80fd5b50919050565b5f805f8084860361026081121561339c575f80fd5b6133a68787613371565b945060a060bf19820112156133b9575f80fd5b60c086019350604061015f19820112156133d1575f80fd5b50610160850191506133e7866101a08701613371565b905092959194509250565b5f60208284031215613402575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561335457815180518852838101518489015260408082015190890152606080820151908901526080908101519088015260a09096019590820190600101613430565b848152608060208201525f61348e608083018661331c565b82810360408401526134a0818661341d565b90508281036060840152613118818561341d565b5f60608201858352602060018060a01b038087166020860152606060408601528286518085526080870191506020880194505f5b818110156135065785518416835294840194918401916001016134e8565b50909998505050505050505050565b634e487b7160e01b5f52602160045260245ffd5b5f815180845260208085019450602084015f5b838110156133545781518752958201959082019060010161353c565b6001600160a01b03831681526040602082018190525f906113a090830184613529565b5f815160408452805160408501526020808201519150604060608601528151606060808701526135ae60e0870182613529565b82840151607f19888303810160a08a0152815180845291850193505f929091908501905b808410156135f257845182529385019360019390930192908501906135d2565b5060408601519550818982030160c08a015261360e8187613529565b978501516001600160a01b03169890940197909752509395945050505050565b602081525f611826602083018461357b565b5f60208284031215613650575f80fd5b81518015158114611826575f80fd5b5f60a0828403121561366f575f80fd5b60405160a081018181106001600160401b038211171561369157613691612ab6565b806040525082518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b8051612ab181612a50565b5f6101008083850312156136e9575f80fd5b604051908101906001600160401b038211818310171561370b5761370b612ab6565b8160405283518152602084015160208201526040840151915061372d82612a50565b81604082015261373f606085016136cc565b6060820152613750608085016136cc565b608082015261376160a085016136cc565b60a082015261377260c085016136cc565b60c082015261378360e085016136cc565b60e0820152949350505050565b5f602082840312156137a0575f80fd5b81516001600160401b038111156137b5575f80fd5b8201601f810184136137c5575f80fd5b80516137d3612b6682612b23565b8181528560208385010111156137e7575f80fd5b61147b826020830160208601612e6c565b66029b4bd32903e160cd1b81525f8551613819816007850160208a01612e6c565b8083019050620103e160ed1b806007830152865161383e81600a850160208b01612e6c565b600a9201918201819052855161385b81600d850160208a01612e6c565b600d9201918201528351613876816010840160208801612e6c565b016010019695505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016138a9576138a9613884565b5060010190565b8181038181111561088257610882613884565b5f808335601e198436030181126138d8575f80fd5b8301803591506001600160401b038211156138f1575f80fd5b602001915036819003821315613905575f80fd5b9250929050565b828482375f8382015f81528351613927818360208801612e6c565b0195945050505050565b81516001600160a01b031681526101408101602083015161395a602084018263ffffffff169052565b506040830151613972604084018263ffffffff169052565b50606083015161398d60608401826001600160a01b03169052565b5060808301516139a860808401826001600160a01b03169052565b5060a08301516139c360a08401826001600160a01b03169052565b5060c08301516139de60c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120808401516001600160a01b03811682850152611aa5565b5f60208284031215613a1e575f80fd5b815161182681612a50565b8035613a3481612a50565b6001600160a01b0316825260208101356001600160401b038116808214613a59575f80fd5b80602085015250505050565b8035613a7081612a50565b6001600160a01b039081168352602082013590613a8c82612a50565b9081166020840152604082013590613aa382612a50565b9081166040840152606082013590613aba82612a50565b9081166060840152608082013590613ad182612a50565b908116608084015260a082013590613ae882612a50565b80821660a085015250505050565b5f6102a08201905060018060a01b0380891683528088166020840152863560408401526020870135606084015260408701356080840152606087013560a0840152608087013560c084015260a0870135613b4f81612a50565b1660e083015284356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152613b976101a0830185613a29565b6131186101e0830184613a65565b5f8251613bb6818460208701612e6c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212203e2ff6e9949a3a0b0e6597a1fc519b173d8a5c56a732f96cd12408123f6b4b4c64736f6c63430008170033", - "sourceMap": "3419:10778:268:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8697:262;;;;;;;;;;-1:-1:-1;8697:262:268;;;;;:::i;:::-;;:::i;:::-;;3443:202:83;;;;;;;;;;-1:-1:-1;3443:202:83;;;;;:::i;:::-;;:::i;:::-;;;930:14:476;;923:22;905:41;;893:2;878:18;3443:202:83;;;;;;;;1013:55:271;;;;;;;;;;-1:-1:-1;1013:55:271;;;;-1:-1:-1;;;;;1013:55:271;;;;;;-1:-1:-1;;;;;1230:32:476;;;1212:51;;1200:2;1185:18;1013:55:271;1066:203:476;639:153:122;;;;;;;;;;-1:-1:-1;639:153:122;;;;;:::i;:::-;-1:-1:-1;;;639:153:122;;;;;;;;;;-1:-1:-1;;;;;;3635:33:476;;;3617:52;;3605:2;3590:18;639:153:122;3473:202:476;8124:567:268;;;;;;;;;;-1:-1:-1;8124:567:268;;;;;:::i;:::-;;:::i;4759:191:83:-;;;;;;;;;;-1:-1:-1;4759:191:83;;;;;:::i;:::-;;:::i;:::-;;;4284:25:476;;;4272:2;4257:18;4759:191:83;4138:177:476;1437:99:270;;;;;;;;;;;;;:::i;5246:136:83:-;;;;;;;;;;-1:-1:-1;5246:136:83;;;;;:::i;:::-;;:::i;6348:245::-;;;;;;;;;;-1:-1:-1;6348:245:83;;;;;:::i;:::-;;:::i;1517:45:271:-;;;;;;;;;;-1:-1:-1;1517:45:271;;;;-1:-1:-1;;;;;1517:45:271;;;4336:3138:268;;;;;;;;;;-1:-1:-1;4336:3138:268;;;;;:::i;:::-;;:::i;13360:283::-;;;;;;;;;;-1:-1:-1;13360:283:268;;;;;:::i;:::-;;:::i;4161:214:87:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;3398:88:270:-;;;;;;;;;;-1:-1:-1;3472:7:270;;;;;;;;;;;;-1:-1:-1;;;3472:7:270;;;;3398:88;;;;;;;:::i;12303:274:268:-;;;;;;;;;;-1:-1:-1;12303:274:268;;;;;:::i;:::-;;:::i;13038:279::-;;;;;;;;;;-1:-1:-1;13038:279:268;;;;;:::i;:::-;;:::i;13649:270::-;;;;;;;;;;-1:-1:-1;13649:270:268;;;;;:::i;:::-;;:::i;10610:115::-;;;;;;;;;;-1:-1:-1;10610:115:268;;;;;:::i;:::-;;:::i;1885:825:270:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1153:171:271:-;;;;;;;;;;-1:-1:-1;1153:171:271;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1397:71;;;;;;;;;;-1:-1:-1;1397:71:271;;;;;:::i;:::-;;;;;;;;;;;;;;11901:359:268;;;;;;;;;;-1:-1:-1;11901:359:268;;;;;:::i;:::-;;:::i;10768:227::-;;;;;;;;;;-1:-1:-1;10768:227:268;;;;;:::i;:::-;;:::i;3732:207:83:-;;;;;;;;;;-1:-1:-1;3732:207:83;;;;;:::i;:::-;;:::i;899:33:271:-;;;;;;;;;;-1:-1:-1;899:33:271;;;;-1:-1:-1;;;;;899:33:271;;;12825:170:268;;;;;;;;;;-1:-1:-1;12825:170:268;;;;;:::i;:::-;;:::i;13925:270::-;;;;;;;;;;-1:-1:-1;13925:270:268;;;;;:::i;:::-;;:::i;2317:49:83:-;;;;;;;;;;-1:-1:-1;2317:49:83;2362:4;2317:49;;2764:580:270;;;;;;;;;;-1:-1:-1;2764:580:270;;;;;:::i;:::-;;:::i;11687:171:268:-;;;;;;;;;;;;;:::i;1518:484:91:-;;;;;;;;;;-1:-1:-1;1518:484:91;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1819:58:87:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:87;;;;;7752:333:268;;;;;;;;;;-1:-1:-1;7752:333:268;;;;;:::i;:::-;;:::i;3814:343::-;;;;;;;;;;-1:-1:-1;3814:343:268;;;;;:::i;:::-;;:::i;12620:162::-;;;;;;;;;;-1:-1:-1;12620:162:268;;;;;:::i;:::-;;:::i;10273:298::-;;;;;;;;;;-1:-1:-1;10273:298:268;;;;;:::i;:::-;;:::i;5662:138:83:-;;;;;;;;;;-1:-1:-1;5662:138:83;;;;;:::i;:::-;;:::i;9690:544:268:-;;;;;;;;;;-1:-1:-1;9690:544:268;;;;;:::i;:::-;;:::i;1271:112:270:-;;;;;;;;;;-1:-1:-1;1271:112:270;;;;;:::i;:::-;;:::i;1590:241::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8998:653:268:-;;;;;;;;;;-1:-1:-1;8998:653:268;;;;;:::i;:::-;;:::i;8697:262::-;2362:4:83;3191:16;2362:4;3191:10;:16::i;:::-;8852:18:268::1;::::0;8822:80:::1;::::0;-1:-1:-1;;;;;8822:80:268;;::::1;::::0;8852:18:::1;::::0;8822:80:::1;::::0;8852:18:::1;::::0;8822:80:::1;-1:-1:-1::0;8912:18:268::1;:40:::0;;-1:-1:-1;;;;;;8912:40:268::1;-1:-1:-1::0;;;;;8912:40:268;;;::::1;::::0;;;::::1;::::0;;8697:262::o;3443:202:83:-;3528:4;-1:-1:-1;;;;;;3551:47:83;;-1:-1:-1;;;3551:47:83;;:87;;-1:-1:-1;;;;;;;;;;1134:40:93;;;3602:36:83;3544:94;3443:202;-1:-1:-1;;3443:202:83:o;8124:567:268:-;2362:4:83;3191:16;2362:4;3191:10;:16::i;:::-;-1:-1:-1;;;;;8308:55:268;::::1;8304:114;;8386:21;;-1:-1:-1::0;;;8386:21:268::1;;;;;;;;;;;8304:114;8497:40;::::0;8432:158:::1;::::0;-1:-1:-1;;;;;8432:158:268;;::::1;::::0;8497:40:::1;::::0;8432:158:::1;::::0;8497:40:::1;::::0;8432:158:::1;-1:-1:-1::0;8600:40:268::1;:84:::0;;-1:-1:-1;;;;;;8600:84:268::1;-1:-1:-1::0;;;;;8600:84:268;;;::::1;::::0;;;::::1;::::0;;8124:567::o;4759:191:83:-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:83;;;;;:24;;;;4759:191::o;1437:99:270:-;1487:7;1513:16;:7;:14;:16::i;:::-;1506:23;;1437:99;:::o;5246:136:83:-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;:::-;;5246:136:::0;;;:::o;6348:245::-;-1:-1:-1;;;;;6441:34:83;;966:10:90;6441:34:83;6437:102;;6498:30;;-1:-1:-1;;;6498:30:83;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;:::-;;6348:245;;:::o;4336:3138:268:-;2362:4:83;3191:16;2362:4;3191:10;:16::i;:::-;4598:7:268::1;6355:30:86;6388:26;:24;:26::i;:::-;6429:15:::0;;;;-1:-1:-1;;;;6429:15:86;::::1;;;::::0;:44:::1;;-1:-1:-1::0;6448:14:86;;-1:-1:-1;;;;;6448:25:86;;::::1;:14:::0;::::1;:25;;6429:44;6425:105;;;6496:23;;-1:-1:-1::0;;;6496:23:86::1;;;;;;;;;;;6425:105;6539:24:::0;;-1:-1:-1;;6573:22:86;-1:-1:-1;;;;;6539:24:86;::::1;6573:22:::0;-1:-1:-1;;;6573:22:86::1;::::0;;-1:-1:-1;;;;;4621:42:268;::::2;4617:101;;4686:21;;-1:-1:-1::0;;;4686:21:268::2;;;;;;;;;;;4617:101;4728:18;:40:::0;;-1:-1:-1;;;;;;4728:40:268::2;-1:-1:-1::0;;;;;4728:40:268;::::2;::::0;;::::2;::::0;;;4783:63:::2;::::0;-1:-1:-1;;4783:63:268::2;::::0;-1:-1:-1;;4783:63:268::2;-1:-1:-1::0;;;;;4861:22:268;::::2;::::0;;:53:::2;;-1:-1:-1::0;;;;;;4887:27:268;::::2;::::0;4861:53:::2;4967:7;4857:127;5027:16;::::0;;5041:1:::2;5027:16:::0;;;;;::::2;::::0;;;4994:30:::2;::::0;5027:16:::2;::::0;;::::2;::::0;;::::2;::::0;::::2;-1:-1:-1::0;;5072:18:268::2;::::0;:37:::2;::::0;;-1:-1:-1;;;5072:37:268;;;;4994:49;;-1:-1:-1;;;;;;5072:18:268;;::::2;::::0;:35:::2;::::0;-1:-1:-1;5072:37:268::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;;:18:::2;::::0;:37:::2;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5053:13;5067:1;5053:16;;;;;;;;:::i;:::-;;;;;;:56;;;::::0;::::2;5120:38;5188:18;:25;-1:-1:-1::0;;;;;5161:53:268::2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5161:53:268::2;;;;;;;;;;;;;;;;;5120:94;;5224:40;5294:18;:25;-1:-1:-1::0;;;;;5267:53:268::2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5267:53:268::2;;;;;;;;;;;;;;;;;5224:96;;5335:9;5330:451;5354:18;:25;5350:1;:29;5330:451;;;5430:99;;;;;;;;5462:1;5430:99;;;;5475:1;5430:99;;;;5486:1;5430:99;;;;5497:1;5430:99;;;;-1:-1:-1::0;;;5430:99:268::2;;::::0;5400:8:::2;5409:1;5400:11;;;;;;;;:::i;:::-;;;;;;:129;;;;5560:210;;;;;;;;5609:1;5560:210;;;;-1:-1:-1::0;;5560:210:268::2;;;;5681:1;5560:210;;;;-1:-1:-1::0;;5560:210:268::2;;;;5754:1;5560:210;;::::0;5544:10:::2;5555:1;5544:13;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;:226;5381:3:::2;;5330:451;;;-1:-1:-1::0;5790:18:268::2;::::0;5836:16;;-1:-1:-1;;;;;5790:18:268;;::::2;::::0;:45:::2;::::0;5836:13;;5790:18:::2;::::0;5836:16:::2;;;;:::i;:::-;;;;;;;5854:18;5874:10;5886:8;5790:105;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;5905:30:268::2;::::0;-1:-1:-1;5952:1:268::2;::::0;-1:-1:-1;5938:16:268::2;::::0;-1:-1:-1;5938:16:268;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;5938:16:268::2;;5905:49;;5983:13;5964;5978:1;5964:16;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;5964:32:268::2;;;-1:-1:-1::0;;;;;5964:32:268::2;;;::::0;::::2;6011:9;6006:220;6030:18;:25;6026:1;:29;6006:220;;;6076:18;::::0;6147:16;;-1:-1:-1;;;;;6076:18:268;;::::2;::::0;:53:::2;::::0;6147:13;;6076:18:::2;::::0;6147:16:::2;;;;:::i;:::-;;;;;;;6165:18;6184:1;6165:21;;;;;;;;:::i;:::-;;;;;;;6188:13;6076:139;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;6057:3:268::2;::::0;;::::2;::::0;-1:-1:-1;6006:220:268::2;::::0;-1:-1:-1;6006:220:268::2;;-1:-1:-1::0;6262:15:268::2;::::0;;6275:1:::2;6262:15:::0;;;;;::::2;::::0;;6236:23:::2;::::0;6262:15:::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;6262:15:268::2;6236:41;;6300:23;6287:7;6295:1;6287:10;;;;;;;;:::i;:::-;;;;;;:36;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;::::0;::::2;6346:24;6333:7;6341:1;6333:10;;;;;;;;:::i;:::-;;;;;;:37;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;::::0;;-1:-1:-1;6386:9:268::2;6381:928;6405:6;:13;6401:1;:17;6381:928;;;6439:18;::::0;6485:9;;-1:-1:-1;;;;;6439:18:268;;::::2;::::0;:45:::2;::::0;6485:6;;6492:1;;6485:9;::::2;;;;;:::i;:::-;;;;;;;6496:13;6439:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;6524:84;6550:4;6557:6;6564:1;6557:9;;;;;;;;:::i;:::-;;;;;;;6568:39;6599:7;6568:30;:39::i;:::-;6524:17;:84::i;:::-;6627:9;6622:585;6646:18;:25;6642:1;:29;6622:585;;;6696:68;;:::i;:::-;6826:6;6833:1;6826:9;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;-1:-1:-1;;;;;6782:53:268::2;:41:::0;;::::2;:53:::0;6854:21;;:18;;6873:1;;6854:21;::::2;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;6854:46:268::2;;6901:30;6854:78;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;6951:70;;:::i;:::-;7084:6;7091:1;7084:9;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;-1:-1:-1;;;;;7039:54:268::2;:42:::0;;::::2;:54:::0;7112:21;;:18;;7131:1;;7112:21;::::2;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;7112:47:268::2;;7160:31;7112:80;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;6673:3:268::2;::::0;;::::2;::::0;-1:-1:-1;6622:585:268::2;::::0;-1:-1:-1;;;6622:585:268::2;;;7220:78;7246:4;7253:6;7260:1;7253:9;;;;;;;;:::i;:::-;;;;;;;7264:33;2539:13:276::0;1437:99:270;;7220:78:268::2;6420:3;;6381:928;;;;7355:19;-1:-1:-1::0;;;;;7319:74:268::2;;7415:4;7430:8;7441:13;7455:1;7441:16;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;7319:148:::2;::::0;-1:-1:-1;;;;;;7319:148:268::2;::::0;;;;;;-1:-1:-1;;;;;26935:15:476;;;7319:148:268::2;::::0;::::2;26917:34:476::0;26987:15;;;;26967:18;;;26960:43;27019:18;;;27012:34;26852:18;;7319:148:268::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;4607:2867;;;;;6605:1:86;6616:23:::0;;-1:-1:-1;;;;6616:23:86::1;::::0;;6654:20:::1;::::0;-1:-1:-1;;;;;27219:31:476;;27201:50;;6654:20:86::1;::::0;27189:2:476;27174:18;6654:20:86::1;;;;;;;6289:392;3217:1:83;4336:3138:268::0;;;;;;:::o;13360:283::-;13551:18;;:85;;-1:-1:-1;;;13551:85:268;;-1:-1:-1;;;;;27593:15:476;;;13551:85:268;;;27575:34:476;27625:18;;;27618:34;;;27688:15;;;27668:18;;;27661:43;27740:15;;;27720:18;;;27713:43;27772:19;;;27765:35;;;13521:7:268;;13551:18;;:36;;27509:19:476;;13551:85:268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13544:92;13360:283;-1:-1:-1;;;;;;13360:283:268:o;4161:214:87:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;3708:134::-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:87;:::o;12303:274:268:-;12376:19;12412:25;12429:6;12412:8;:25::i;:::-;12407:102;;12460:38;;-1:-1:-1;;;12460:38:268;;-1:-1:-1;;;;;1230:32:476;;12460:38:268;;;1212:51:476;1185:18;;12460:38:268;;;;;;;;12407:102;12527:43;12556:6;12565:4;;12527:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12527:20:268;;-1:-1:-1;;;12527:43:268:i;:::-;12518:52;12303:274;-1:-1:-1;;;;12303:274:268:o;13038:279::-;13227:18;;:83;;-1:-1:-1;;;13227:83:268;;-1:-1:-1;;;;;27593:15:476;;;13227:83:268;;;27575:34:476;27625:18;;;27618:34;;;27688:15;;;27668:18;;;27661:43;27740:15;;;27720:18;;;27713:43;27772:19;;;27765:35;;;13197:7:268;;13227:18;;:34;;27509:19:476;;13227:83:268;27262:544:476;13649:270:268;13828:18;;:84;;-1:-1:-1;;;13828:84:268;;-1:-1:-1;;;;;28114:15:476;;;13828:84:268;;;28096:34:476;28146:18;;;28139:34;;;28209:15;;;28189:18;;;28182:43;28241:18;;;28234:34;;;13801:4:268;;13828:18;;:52;;28030:19:476;;13828:84:268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13821:91;13649:270;-1:-1:-1;;;;;13649:270:268:o;10610:115::-;10668:4;10691:27;10668:4;10708:9;10691:16;:27::i;1885:825:270:-;1941:28;2009:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1996:30:270;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:45;;2085:9;2080:582;2104:12;:19;2100:1;:23;2080:582;;;2144:10;2163:13;2144:10;2174:1;2163:10;:13::i;:::-;2144:33;;2191:28;2222:62;2238:3;2243:4;-1:-1:-1;;;;;2243:15:270;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;183:4:298;2222:15:270;:62::i;:::-;2191:93;;2374:4;-1:-1:-1;;;;;2374:9:270;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;;-1:-1:-1;;;;;2374:44:270;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2374:46:270;;;;;;;;;;;;:::i;:::-;2461:4;-1:-1:-1;;;;;2461:9:270;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;;-1:-1:-1;;;;;2461:40:270;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2461:42:270;;;;;;;;;;;;:::i;:::-;2544:38;2561:20;2544:16;:38::i;:::-;2623:4;-1:-1:-1;;;;;2623:12:270;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2623:14:270;;;;;;;;;;;;:::i;:::-;2316:335;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2298:12;2311:1;2298:15;;;;;;;;:::i;:::-;;;;;;;;;;:353;-1:-1:-1;;2125:3:270;;2080:582;;;;1885:825;:::o;11901:359:268:-;11997:4;12029:10;-1:-1:-1;;;;;12017:22:268;:8;-1:-1:-1;;;;;12017:22:268;;12013:241;;-1:-1:-1;12062:4:268;12055:11;;12013:241;-1:-1:-1;;;;;12113:31:268;;;12097:13;12113:31;;;:19;:31;;;;;;;;;12191:21;;;:14;:21;;;;;:31;;;;;;;;;;;:43;;;;;;;;12165:78;;12236:6;12165:25;:78::i;:::-;12158:85;;;12013:241;11901:359;;;;;:::o;10768:227::-;10934:54;10952:8;10962:10;10974:13;10934:17;:54::i;3732:207:83:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:83;;;;;;;;-1:-1:-1;;;;;3901:31:83;;;;;;;;;;;;;;;3732:207::o;12825:170:268:-;12912:18;;:76;;-1:-1:-1;;;12912:76:268;;-1:-1:-1;;;;;12912:18:268;;;;:49;;:76;;12962:10;;12974:13;;12912:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12825:170;:::o;13925:270::-;14104:18;;:84;;-1:-1:-1;;;14104:84:268;;-1:-1:-1;;;;;28114:15:476;;;14104:84:268;;;28096:34:476;28146:18;;;28139:34;;;28209:15;;;28189:18;;;28182:43;28241:18;;;28234:34;;;14077:4:268;;14104:18;;:54;;28030:19:476;;14104:84:268;27811:463:476;2764:580:270;2903:4;2939:10;-1:-1:-1;;;;;2927:22:270;:8;-1:-1:-1;;;;;2927:22:270;;2923:415;;-1:-1:-1;2972:4:270;2965:11;;2923:415;-1:-1:-1;;;;;;3023:31:270;;;3007:13;3023:31;;;:19;:31;;;;;;;;;3112:21;;:14;:21;;;;;:31;;;;;;;;;;;:43;;;;;;;;;3176:93;;:151;;3169:158;;11687:171:268;11773:35;;11797:10;;11773:35;;;;;11838:10;11818:31;;;;:19;:31;;;;;:33;;;;;;:::i;:::-;;;;;;11687:171::o;1518:484:91:-;1684:12;;;1620:20;1684:12;;;;;;;;1586:22;;1795:4;-1:-1:-1;;;;;1783:24:91;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:34;;1822:9;1817:155;1837:15;;;1817:155;;;1886:75;1923:4;1943;;1948:1;1943:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1952;1930:30;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1886:28;:75::i;:::-;1873:7;1881:1;1873:10;;;;;;;;:::i;:::-;;;;;;;;;;:88;1854:3;;1817:155;;;;1981:14;1518:484;;;;:::o;7752:333:268:-;2362:4:83;3191:16;2362:4;3191:10;:16::i;:::-;-1:-1:-1;;;;;7864:33:268;::::1;7860:92;;7920:21;;-1:-1:-1::0;;;7920:21:268::1;;;;;;;;;;;7860:92;7988:18;::::0;7966:62:::1;::::0;-1:-1:-1;;;;;7966:62:268;;::::1;::::0;7988:18:::1;::::0;7966:62:::1;::::0;7988:18:::1;::::0;7966:62:::1;-1:-1:-1::0;8038:18:268::1;:40:::0;;-1:-1:-1;;;;;;8038:40:268::1;-1:-1:-1::0;;;;;8038:40:268;;;::::1;::::0;;;::::1;::::0;;7752:333::o;3814:343::-;4158:30:86;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:86;-1:-1:-1;;;4302:15:86;;;4301:16;;-1:-1:-1;;;;;4348:14:86;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:86;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:86;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:86;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:86;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:86;-1:-1:-1;;;5011:22:86;;;4977:67;3881:18:268::1;:16;:18::i;:::-;3909:22;:20;:22::i;:::-;3941:24;:22;:24::i;:::-;3976:38;2362:4:83;4007:6:268::0;3976:10:::1;:38::i;:::-;;4024:31;978:24:272;4048:6:268;4024:10;:31::i;:::-;;4065;921:24:272;4089:6:268;4065:10;:31::i;:::-;;4106:44;1048:37:272;4143:6:268;4106:10;:44::i;:::-;;5068:14:86::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:86;;;5140:14;;-1:-1:-1;27201:50:476;;5140:14:86;;27189:2:476;27174:18;5140:14:86;;;;;;;5064:101;4092:1079;;;;;3814:343:268;:::o;12620:162::-;12703:18;;:72;;-1:-1:-1;;;12703:72:268;;-1:-1:-1;;;;;12703:18:268;;;;:45;;:72;;12749:10;;12761:13;;12703:72;;;:::i;10273:298::-;10410:19;;3191:16:83;10410:19:268;3191:10:83;:16::i;:::-;10457:57:268::1;::::0;-1:-1:-1;;;10457:57:268;;:23:::1;::::0;:39:::1;::::0;:57:::1;::::0;10497:16;;10457:57:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10529:35;::::0;10445:69;;-1:-1:-1;;;;;;10529:35:268;::::1;::::0;::::1;::::0;;;::::1;10273:298:::0;;;;:::o;5662:138:83:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;9690:544:268:-:0;9851:51;;3191:16:83;9851:51:268;3191:10:83;:16::i;:::-;10069:40:268::1;::::0;9973:190:::1;::::0;-1:-1:-1;;;9973:190:268;;-1:-1:-1;;;;;10069:40:268;;::::1;9973:190;::::0;::::1;36644:34:476::0;9934:10:268::1;36694:18:476::0;;;36687:43;;;36766:15;;;36746:18;;;36739:43;36818:15;;;36798:18;;;36791:43;9973:41:268::1;::::0;:82:::1;::::0;36578:19:476;;9973:190:268::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10178:49;::::0;9954:209;;-1:-1:-1;;;;;;10178:49:268;::::1;::::0;::::1;::::0;;;::::1;9908:326;9690:544:::0;;;;;:::o;1271:112:270:-;1328:5;1358:17;1328:5;1369;1358:10;:17::i;1590:241::-;1635:23;1693:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1681:29:270;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1681:29:270;;1670:40;;1725:9;1720:105;1744:8;:15;1740:1;:19;1720:105;;;1800:13;:7;1811:1;1800:10;:13::i;:::-;1780:8;1789:1;1780:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1780:34:270;;;:11;;;;;;;;;;;:34;1761:3;;1720:105;;8998:653:268;9299:12;;3191:16:83;9299:12:268;3191:10:83;:16::i;:::-;9415:18:268::1;::::0;9368:143:::1;::::0;-1:-1:-1;;;9368:143:268;;9339:10:::1;::::0;9368:20:::1;::::0;:33:::1;::::0;:143:::1;::::0;-1:-1:-1;;;;;9415:18:268;;::::1;::::0;9339:10;;9442:15;;9459:16;;9477:12;;9491:10;;9368:143:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9359:152:::0;-1:-1:-1;9572:28:268::1;:7;9359:152:::0;9572:11:::1;:28::i;:::-;-1:-1:-1::0;9615:29:268::1;::::0;-1:-1:-1;;;;;9615:29:268;::::1;::::0;::::1;::::0;;;::::1;9313:338;8998:653:::0;;;;;;;:::o;4148:103:83:-;4214:30;4225:4;966:10:90;4214::83;:30::i;:::-;4148:103;:::o;10530:115:140:-;10593:7;10619:19;10627:3;5202:18;;5120:107;7270:387:83;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:83;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:83;;;;;;;;;:38;;-1:-1:-1;;7475:38:83;7509:4;7475:38;;;7559:12;966:10:90;;887:96;7559:12:83;-1:-1:-1;;;;;7532:40:83;7550:7;-1:-1:-1;;;;;7532:40:83;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7894:388;7972:4;-1:-1:-1;;;;;;;;;;;8061:22:83;8069:4;8075:7;8061;:22::i;:::-;8057:219;;;8133:5;8099:14;;;;;;;;;;;-1:-1:-1;;;;;8099:31:83;;;;;;;;;;:39;;-1:-1:-1;;8099:39:83;;;8157:40;966:10:90;;8099:14:83;;8157:40;;8133:5;8157:40;8218:4;8211:11;;;;;9071:205:86;9129:30;;3147:66;9186:27;8819:122;4070:334:276;4144:13;;;4211:133;4235:7;:14;4231:1;:18;4211:133;;;4294:39;4304:28;4321:7;4329:1;4321:10;;;;;;;;:::i;:::-;;;;;;;4304:16;:28::i;:::-;1921:13;1795:148;4294:39;4270:63;;;;4251:3;;4211:133;;;-1:-1:-1;4376:20:276;4360:37;1795:148;11001:643:268;-1:-1:-1;;;;;11147:22:268;;11143:81;;11192:21;;-1:-1:-1;;;11192:21:268;;;;;;;;;;;11143:81;11272:36;11294:13;11272:21;:36::i;:::-;11267:144;;11331:69;;-1:-1:-1;;;11331:69:268;;;;;4284:25:476;;;4257:18;;11331:69:268;4138:177:476;11267:144:268;-1:-1:-1;;;;;11437:31:268;;11421:13;11437:31;;;:19;:31;;;;;;11546:13;11512:8;-1:-1:-1;;;;;11483:85:268;11500:10;-1:-1:-1;;;;;11483:85:268;;11562:5;11483:85;;;;4284:25:476;;4272:2;4257:18;;4138:177;11483:85:268;;;;;;;;11578:21;;;;:14;:21;;;;;;;;-1:-1:-1;;;;;11578:31:268;;;;;;;;;;:43;;;;;;;;;;;;;:59;11001:643::o;4578:312:87:-;4658:4;-1:-1:-1;;;;;4667:6:87;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:87;:32;-1:-1:-1;;;;;;;;;;;1519:53:109;-1:-1:-1;;;;;1519:53:109;;1441:138;4728:32:87;-1:-1:-1;;;;;4728:42:87;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:87;;;;;;;;;;;4633:251;4578:312::o;7610:103:268:-;2362:4:83;3191:16;2362:4;3191:10;:16::i;6032:538:87:-;6149:17;-1:-1:-1;;;;;6131:50:87;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:87;;;;;;;;-1:-1:-1;;6131:52:87;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:87;;-1:-1:-1;;;;;1230:32:476;;6493:60:87;;;1212:51:476;1185:18;;6493:60:87;1066:203:476;6127:437:87;-1:-1:-1;;;;;;;;;;;6225:40:87;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:87;;;;;4284:25:476;;;4257:18;;6292:34:87;4138:177:476;6221:120:87;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:87;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:87;;;;;;;;;;;2500:151:124;2575:12;2606:38;2628:6;2636:4;2642:1;2606:21;:38::i;10284:165:140:-;-1:-1:-1;;;;;10417:23:140;;10364:4;5006:21;;;:14;;;:21;;;;;;:26;;10387:55;4910:129;10987:156;11061:7;11111:22;11115:3;11127:5;11111:3;:22::i;766:142:298:-;842:7;868:33;893:1;896;899;868:24;:33::i;1308:632:133:-;1364:13;1413:14;1430:17;1441:5;1430:10;:17::i;:::-;1450:1;1430:21;1413:38;;1465:20;1499:6;-1:-1:-1;;;;;1488:18:133;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1488:18:133;-1:-1:-1;1465:41:133;-1:-1:-1;1595:28:133;;;1611:2;1595:28;1650:247;-1:-1:-1;;1681:5:133;-1:-1:-1;;;1780:2:133;1769:14;;1764:32;1681:5;1751:46;1841:2;1832:11;;;-1:-1:-1;1861:21:133;1650:247;1861:21;-1:-1:-1;1917:6:133;1308:632;-1:-1:-1;;;1308:632:133:o;3317:174:276:-;3405:4;3470:6;3462:15;;;;;;;;:::i;:::-;3457:1;:20;;3439:13;3429:49;3428:56;;;3317:174;-1:-1:-1;;;3317:174:276:o;3916:253:124:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:124;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;1218:61:91:-;6929:20:86;:18;:20::i;9332:150:140:-;9402:4;9425:50;9430:3;-1:-1:-1;;;;;9450:23:140;;9425:4;:50::i;4381:197:83:-;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:83;;-1:-1:-1;;;;;41723:32:476;;4514:47:83;;;41705:51:476;41772:18;;;41765:34;;;41678:18;;4514:47:83;41531:274:476;3700:140:276;3764:13;3796:37;3825:6;3817:15;;;;;;;;:::i;:::-;3812:1;:20;;1921:13;1795:148;2776:220;2845:4;;2886:44;2929:1;2887:38;2886:44;:::i;:::-;2947:42;;;;;;-1:-1:-1;;2776:220:276:o;2264:344:109:-;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:109;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;2975:407:124:-;3074:12;3126:5;3102:21;:29;3098:123;;;3154:56;;-1:-1:-1;;;3154:56:124;;3181:21;3154:56;;;41984:25:476;42025:18;;;42018:34;;;41957:18;;3154:56:124;41810:248:476;3098:123:124;3231:12;3245:23;3272:6;-1:-1:-1;;;;;3272:11:124;3291:5;3298:4;3272:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3230:73;;;;3320:55;3347:6;3355:7;3364:10;3320:26;:55::i;5569:118:140:-;5636:7;5662:3;:11;;5674:5;5662:18;;;;;;;;:::i;:::-;;;;;;;;;5655:25;;5569:118;;;;:::o;24705:466:179:-;24777:9;25000:1;24996;24992:6;24988:14;24985:1;24982:21;24979:1;24975:29;24968:37;24965:1;24961:45;24951:169;;25039:10;25033:4;25026:24;25101:4;25095;25088:18;24951:169;-1:-1:-1;25142:9:179;;25138:17;;24705:466::o;29154:916:136:-;29207:7;;-1:-1:-1;;;29282:17:136;;29278:103;;-1:-1:-1;;;29319:17:136;;;-1:-1:-1;29364:2:136;29354:12;29278:103;29407:8;29398:5;:17;29394:103;;29444:8;29435:17;;;-1:-1:-1;29480:2:136;29470:12;29394:103;29523:8;29514:5;:17;29510:103;;29560:8;29551:17;;;-1:-1:-1;29596:2:136;29586:12;29510:103;29639:7;29630:5;:16;29626:100;;29675:7;29666:16;;;-1:-1:-1;29710:1:136;29700:11;29626:100;29752:7;29743:5;:16;29739:100;;29788:7;29779:16;;;-1:-1:-1;29823:1:136;29813:11;29739:100;29865:7;29856:5;:16;29852:100;;29901:7;29892:16;;;-1:-1:-1;29936:1:136;29926:11;29852:100;29978:7;29969:5;:16;29965:66;;30015:1;30005:11;30057:6;29154:916;-1:-1:-1;;29154:916:136:o;4437:582:124:-;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;:::-;4605:408;;;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:124;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:124;;-1:-1:-1;;;;;1230:32:476;;4933:24:124;;;1212:51:476;1185:18;;4933:24:124;1066:203:476;7082:141:86;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:86;;;;;;;;;;;2336:406:140;2399:4;5006:21;;;:14;;;:21;;;;;;2415:321;;-1:-1:-1;2457:23:140;;;;;;;;:11;:23;;;;;;;;;;;;;2639:18;;2615:21;;;:14;;;:21;;;;;;:42;;;;2671:11;;2415:321;-1:-1:-1;2720:5:140;2713:12;;1671:281:109;1748:17;-1:-1:-1;;;;;1748:29:109;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:109;;-1:-1:-1;;;;;1230:32:476;;1805:47:109;;;1212:51:476;1185:18;;1805:47:109;1066:203:476;1744:119:109;-1:-1:-1;;;;;;;;;;;1872:73:109;;-1:-1:-1;;;;;;1872:73:109;-1:-1:-1;;;;;1872:73:109;;;;;;;;;;1671:281::o;6113:122::-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:109;;;;;;;;;;;5559:487:124;5690:17;;:21;5686:354;;5887:10;5881:17;5943:15;5930:10;5926:2;5922:19;5915:44;5686:354;6010:19;;-1:-1:-1;;;6010:19:124;;;;;;;;;;;8485:120:86;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:86;;;;;;-1:-1:-1;8485:120:86:o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:152:476:-;-1:-1:-1;;;;;110:31:476;;100:42;;90:70;;156:1;153;146:12;171:298;260:6;313:2;301:9;292:7;288:23;284:32;281:52;;;329:1;326;319:12;281:52;368:9;355:23;387:52;433:5;387:52;:::i;474:286::-;532:6;585:2;573:9;564:7;560:23;556:32;553:52;;;601:1;598;591:12;553:52;627:23;;-1:-1:-1;;;;;;679:32:476;;669:43;;659:71;;726:1;723;716:12;1274:155;1342:20;;1371:52;1342:20;1371:52;:::i;:::-;1274:155;;;:::o;1434:127::-;1495:10;1490:3;1486:20;1483:1;1476:31;1526:4;1523:1;1516:15;1550:4;1547:1;1540:15;1566:252;1638:2;1632:9;1680:3;1668:16;;-1:-1:-1;;;;;1699:34:476;;1735:22;;;1696:62;1693:88;;;1761:18;;:::i;:::-;1797:2;1790:22;1566:252;:::o;1823:275::-;1894:2;1888:9;1959:2;1940:13;;-1:-1:-1;;1936:27:476;1924:40;;-1:-1:-1;;;;;1979:34:476;;2015:22;;;1976:62;1973:88;;;2041:18;;:::i;:::-;2077:2;2070:22;1823:275;;-1:-1:-1;1823:275:476:o;2103:186::-;2151:4;-1:-1:-1;;;;;2176:6:476;2173:30;2170:56;;;2206:18;;:::i;:::-;-1:-1:-1;2272:2:476;2251:15;-1:-1:-1;;2247:29:476;2278:4;2243:40;;2103:186::o;2294:462::-;2336:5;2389:3;2382:4;2374:6;2370:17;2366:27;2356:55;;2407:1;2404;2397:12;2356:55;2443:6;2430:20;2474:48;2490:31;2518:2;2490:31;:::i;:::-;2474:48;:::i;:::-;2547:2;2538:7;2531:19;2593:3;2586:4;2581:2;2573:6;2569:15;2565:26;2562:35;2559:55;;;2610:1;2607;2600:12;2559:55;2675:2;2668:4;2660:6;2656:17;2649:4;2640:7;2636:18;2623:55;2723:1;2698:16;;;2716:4;2694:27;2687:38;;;;2702:7;2294:462;-1:-1:-1;;;2294:462:476:o;2761:707::-;2856:6;2864;2872;2880;2933:3;2921:9;2912:7;2908:23;2904:33;2901:53;;;2950:1;2947;2940:12;2901:53;2989:9;2976:23;3008:52;3054:5;3008:52;:::i;:::-;3079:5;-1:-1:-1;3136:2:476;3121:18;;3108:32;3149:54;3108:32;3149:54;:::i;:::-;3222:7;-1:-1:-1;3276:2:476;3261:18;;3248:32;;-1:-1:-1;3331:2:476;3316:18;;3303:32;-1:-1:-1;;;;;3347:30:476;;3344:50;;;3390:1;3387;3380:12;3344:50;3413:49;3454:7;3445:6;3434:9;3430:22;3413:49;:::i;:::-;3403:59;;;2761:707;;;;;;;:::o;3953:180::-;4012:6;4065:2;4053:9;4044:7;4040:23;4036:32;4033:52;;;4081:1;4078;4071:12;4033:52;-1:-1:-1;4104:23:476;;3953:180;-1:-1:-1;3953:180:476:o;4502:336::-;4570:6;4578;4631:2;4619:9;4610:7;4606:23;4602:32;4599:52;;;4647:1;4644;4637:12;4599:52;4683:9;4670:23;4660:33;;4743:2;4732:9;4728:18;4715:32;4756:52;4802:5;4756:52;:::i;:::-;4827:5;4817:15;;;4502:336;;;;;:::o;5081:183::-;5141:4;-1:-1:-1;;;;;5166:6:476;5163:30;5160:56;;;5196:18;;:::i;:::-;-1:-1:-1;5241:1:476;5237:14;5253:4;5233:25;;5081:183::o;5269:771::-;5330:5;5383:3;5376:4;5368:6;5364:17;5360:27;5350:55;;5401:1;5398;5391:12;5350:55;5437:6;5424:20;5463:4;5487:60;5503:43;5543:2;5503:43;:::i;5487:60::-;5569:3;5593:2;5588:3;5581:15;5621:4;5616:3;5612:14;5605:21;;5678:4;5672:2;5669:1;5665:10;5657:6;5653:23;5649:34;5635:48;;5706:3;5698:6;5695:15;5692:35;;;5723:1;5720;5713:12;5692:35;5759:4;5751:6;5747:17;5773:238;5789:6;5784:3;5781:15;5773:238;;;5869:3;5856:17;5886:52;5932:5;5886:52;:::i;:::-;5951:18;;5989:12;;;;5806;;5773:238;;;-1:-1:-1;6029:5:476;5269:771;-1:-1:-1;;;;;;5269:771:476:o;6045:1599::-;6236:6;6244;6252;6260;6268;6321:3;6309:9;6300:7;6296:23;6292:33;6289:53;;;6338:1;6335;6328:12;6289:53;6377:9;6364:23;6396:52;6442:5;6396:52;:::i;:::-;6467:5;-1:-1:-1;6491:2:476;6529:18;;;6516:32;-1:-1:-1;;;;;6597:14:476;;;6594:34;;;6624:1;6621;6614:12;6594:34;6662:6;6651:9;6647:22;6637:32;;6707:7;6700:4;6696:2;6692:13;6688:27;6678:55;;6729:1;6726;6719:12;6678:55;6765:2;6752:16;6788:60;6804:43;6844:2;6804:43;:::i;6788:60::-;6882:15;;;6964:1;6960:10;;;;6952:19;;6948:28;;;6913:12;;;;6988:19;;;6985:39;;;7020:1;7017;7010:12;6985:39;7044:11;;;;7064:244;7080:6;7075:3;7072:15;7064:244;;;7162:3;7149:17;7179:54;7225:7;7179:54;:::i;:::-;7246:20;;7097:12;;;;7286;;;;7064:244;;;7327:5;-1:-1:-1;7351:38:476;;-1:-1:-1;;7385:2:476;7370:18;;7351:38;:::i;:::-;7341:48;;7408:38;7442:2;7431:9;7427:18;7408:38;:::i;:::-;7398:48;;7499:3;7488:9;7484:19;7471:33;7455:49;;7529:2;7519:8;7516:16;7513:36;;;7545:1;7542;7535:12;7513:36;;;7568:70;7630:7;7619:8;7608:9;7604:24;7568:70;:::i;:::-;7558:80;;;6045:1599;;;;;;;;:::o;7649:746::-;7760:6;7768;7776;7784;7792;7845:3;7833:9;7824:7;7820:23;7816:33;7813:53;;;7862:1;7859;7852:12;7813:53;7901:9;7888:23;7920:52;7966:5;7920:52;:::i;:::-;7991:5;-1:-1:-1;8043:2:476;8028:18;;8015:32;;-1:-1:-1;8099:2:476;8084:18;;8071:32;8112:54;8071:32;8112:54;:::i;:::-;8185:7;-1:-1:-1;8244:2:476;8229:18;;8216:32;8257:54;8216:32;8257:54;:::i;:::-;7649:746;;;;-1:-1:-1;7649:746:476;;8384:3;8369:19;8356:33;;7649:746;-1:-1:-1;;7649:746:476:o;8400:476::-;8477:6;8485;8538:2;8526:9;8517:7;8513:23;8509:32;8506:52;;;8554:1;8551;8544:12;8506:52;8593:9;8580:23;8612:52;8658:5;8612:52;:::i;:::-;8683:5;-1:-1:-1;8739:2:476;8724:18;;8711:32;-1:-1:-1;;;;;8755:30:476;;8752:50;;;8798:1;8795;8788:12;8752:50;8821:49;8862:7;8853:6;8842:9;8838:22;8821:49;:::i;:::-;8811:59;;;8400:476;;;;;:::o;8881:250::-;8966:1;8976:113;8990:6;8987:1;8984:13;8976:113;;;9066:11;;;9060:18;9047:11;;;9040:39;9012:2;9005:10;8976:113;;;-1:-1:-1;;9123:1:476;9105:16;;9098:27;8881:250::o;9136:271::-;9178:3;9216:5;9210:12;9243:6;9238:3;9231:19;9259:76;9328:6;9321:4;9316:3;9312:14;9305:4;9298:5;9294:16;9259:76;:::i;:::-;9389:2;9368:15;-1:-1:-1;;9364:29:476;9355:39;;;;9396:4;9351:50;;9136:271;-1:-1:-1;;9136:271:476:o;9412:220::-;9561:2;9550:9;9543:21;9524:4;9581:45;9622:2;9611:9;9607:18;9599:6;9581:45;:::i;9637:763::-;9732:6;9740;9748;9801:2;9789:9;9780:7;9776:23;9772:32;9769:52;;;9817:1;9814;9807:12;9769:52;9856:9;9843:23;9875:52;9921:5;9875:52;:::i;:::-;9946:5;-1:-1:-1;10002:2:476;9987:18;;9974:32;-1:-1:-1;;;;;10055:14:476;;;10052:34;;;10082:1;10079;10072:12;10052:34;10120:6;10109:9;10105:22;10095:32;;10165:7;10158:4;10154:2;10150:13;10146:27;10136:55;;10187:1;10184;10177:12;10136:55;10227:2;10214:16;10253:2;10245:6;10242:14;10239:34;;;10269:1;10266;10259:12;10239:34;10314:7;10309:2;10300:6;10296:2;10292:15;10288:24;10285:37;10282:57;;;10335:1;10332;10325:12;10282:57;10366:2;10362;10358:11;10348:21;;10388:6;10378:16;;;;;9637:763;;;;;:::o;10628:583::-;10730:6;10738;10746;10754;10807:3;10795:9;10786:7;10782:23;10778:33;10775:53;;;10824:1;10821;10814:12;10775:53;10863:9;10850:23;10882:52;10928:5;10882:52;:::i;:::-;10953:5;-1:-1:-1;11005:2:476;10990:18;;10977:32;;-1:-1:-1;11061:2:476;11046:18;;11033:32;11074:54;11033:32;11074:54;:::i;:::-;10628:583;;;;-1:-1:-1;11147:7:476;;11201:2;11186:18;11173:32;;-1:-1:-1;;10628:583:476:o;11216:803::-;11378:4;11407:2;11447;11436:9;11432:18;11477:2;11466:9;11459:21;11500:6;11535;11529:13;11566:6;11558;11551:22;11604:2;11593:9;11589:18;11582:25;;11666:2;11656:6;11653:1;11649:14;11638:9;11634:30;11630:39;11616:53;;11704:2;11696:6;11692:15;11725:1;11735:255;11749:6;11746:1;11743:13;11735:255;;;11842:2;11838:7;11826:9;11818:6;11814:22;11810:36;11805:3;11798:49;11870:40;11903:6;11894;11888:13;11870:40;:::i;:::-;11860:50;-1:-1:-1;11968:12:476;;;;11933:15;;;;11771:1;11764:9;11735:255;;;-1:-1:-1;12007:6:476;;11216:803;-1:-1:-1;;;;;;;11216:803:476:o;12024:498::-;12101:6;12109;12117;12170:2;12158:9;12149:7;12145:23;12141:32;12138:52;;;12186:1;12183;12176:12;12138:52;12222:9;12209:23;12199:33;;12282:2;12271:9;12267:18;12254:32;12295:52;12341:5;12295:52;:::i;:::-;12366:5;-1:-1:-1;12423:2:476;12408:18;;12395:32;12436:54;12395:32;12436:54;:::i;:::-;12509:7;12499:17;;;12024:498;;;;;:::o;12745:594::-;12835:6;12843;12851;12904:2;12892:9;12883:7;12879:23;12875:32;12872:52;;;12920:1;12917;12910:12;12872:52;12959:9;12946:23;12978:52;13024:5;12978:52;:::i;:::-;13049:5;-1:-1:-1;13106:2:476;13091:18;;13078:32;13119:54;13078:32;13119:54;:::i;:::-;13192:7;-1:-1:-1;13251:2:476;13236:18;;13223:32;13286:2;13274:15;;13264:43;;13303:1;13300;13293:12;13344:372;13448:6;13456;13509:2;13497:9;13488:7;13484:23;13480:32;13477:52;;;13525:1;13522;13515:12;13477:52;13564:9;13551:23;13583:52;13629:5;13583:52;:::i;:::-;13654:5;13706:2;13691:18;;;;13678:32;;-1:-1:-1;;;13344:372:476:o;13721:891::-;13805:6;13836:2;13879;13867:9;13858:7;13854:23;13850:32;13847:52;;;13895:1;13892;13885:12;13847:52;13935:9;13922:23;-1:-1:-1;;;;;13960:6:476;13957:30;13954:50;;;14000:1;13997;13990:12;13954:50;14023:22;;14076:4;14068:13;;14064:27;-1:-1:-1;14054:55:476;;14105:1;14102;14095:12;14054:55;14141:2;14128:16;14164:60;14180:43;14220:2;14180:43;:::i;14164:60::-;14258:15;;;14340:1;14336:10;;;;14328:19;;14324:28;;;14289:12;;;;14364:19;;;14361:39;;;14396:1;14393;14386:12;14361:39;14420:11;;;;14440:142;14456:6;14451:3;14448:15;14440:142;;;14522:17;;14510:30;;14473:12;;;;14560;;;;14440:142;;;14601:5;13721:891;-1:-1:-1;;;;;;;13721:891:476:o;14617:534::-;14730:6;14738;14746;14799:2;14787:9;14778:7;14774:23;14770:32;14767:52;;;14815:1;14812;14805:12;14767:52;14854:9;14841:23;14873:52;14919:5;14873:52;:::i;:::-;14944:5;-1:-1:-1;15001:2:476;14986:18;;14973:32;15014:54;14973:32;15014:54;:::i;:::-;14617:534;;15087:7;;-1:-1:-1;;;15141:2:476;15126:18;;;;15113:32;;14617:534::o;15156:626::-;15253:6;15261;15314:2;15302:9;15293:7;15289:23;15285:32;15282:52;;;15330:1;15327;15320:12;15282:52;15370:9;15357:23;-1:-1:-1;;;;;15440:2:476;15432:6;15429:14;15426:34;;;15456:1;15453;15446:12;15426:34;15494:6;15483:9;15479:22;15469:32;;15539:7;15532:4;15528:2;15524:13;15520:27;15510:55;;15561:1;15558;15551:12;15510:55;15601:2;15588:16;15627:2;15619:6;15616:14;15613:34;;;15643:1;15640;15633:12;15613:34;15696:7;15691:2;15681:6;15678:1;15674:14;15670:2;15666:23;15662:32;15659:45;15656:65;;;15717:1;15714;15707:12;15656:65;15748:2;15740:11;;;;;15770:6;;-1:-1:-1;15156:626:476;;-1:-1:-1;;;;15156:626:476:o;15787:801::-;15947:4;15976:2;16016;16005:9;16001:18;16046:2;16035:9;16028:21;16069:6;16104;16098:13;16135:6;16127;16120:22;16173:2;16162:9;16158:18;16151:25;;16235:2;16225:6;16222:1;16218:14;16207:9;16203:30;16199:39;16185:53;;16273:2;16265:6;16261:15;16294:1;16304:255;16318:6;16315:1;16312:13;16304:255;;;16411:2;16407:7;16395:9;16387:6;16383:22;16379:36;16374:3;16367:49;16439:40;16472:6;16463;16457:13;16439:40;:::i;:::-;16429:50;-1:-1:-1;16537:12:476;;;;16502:15;;;;16340:1;16333:9;16304:255;;16593:163;16660:20;;16720:10;16709:22;;16699:33;;16689:61;;16746:1;16743;16736:12;16761:972;16855:6;16908:3;16896:9;16887:7;16883:23;16879:33;16876:53;;;16925:1;16922;16915:12;16876:53;16951:22;;:::i;:::-;16996:29;17015:9;16996:29;:::i;:::-;16989:5;16982:44;17058:37;17091:2;17080:9;17076:18;17058:37;:::i;:::-;17053:2;17046:5;17042:14;17035:61;17128:37;17161:2;17150:9;17146:18;17128:37;:::i;:::-;17123:2;17116:5;17112:14;17105:61;17198:38;17232:2;17221:9;17217:18;17198:38;:::i;:::-;17193:2;17186:5;17182:14;17175:62;17270:39;17304:3;17293:9;17289:19;17270:39;:::i;:::-;17264:3;17257:5;17253:15;17246:64;17343:39;17377:3;17366:9;17362:19;17343:39;:::i;:::-;17337:3;17330:5;17326:15;17319:64;17416:39;17450:3;17439:9;17435:19;17416:39;:::i;:::-;17410:3;17403:5;17399:15;17392:64;17517:3;17506:9;17502:19;17489:33;17483:3;17476:5;17472:15;17465:58;17542:3;17605:2;17594:9;17590:18;17577:32;17572:2;17565:5;17561:14;17554:56;;17629:3;17664:38;17698:2;17687:9;17683:18;17664:38;:::i;:::-;17648:14;;;17641:62;17652:5;16761:972;-1:-1:-1;;;16761:972:476:o;17966:468::-;18072:6;18080;18133:2;18121:9;18112:7;18108:23;18104:32;18101:52;;;18149:1;18146;18139:12;18101:52;18188:9;18175:23;18207:52;18253:5;18207:52;:::i;:::-;18278:5;-1:-1:-1;18335:2:476;18320:18;;18307:32;18348:54;18307:32;18348:54;:::i;19101:472::-;19161:3;19199:5;19193:12;19226:6;19221:3;19214:19;19252:4;19281;19276:3;19272:14;19265:21;;19320:4;19313:5;19309:16;19343:1;19353:195;19367:6;19364:1;19361:13;19353:195;;;19432:13;;-1:-1:-1;;;;;19428:39:476;19416:52;;19488:12;;;;19523:15;;;;19464:1;19382:9;19353:195;;;-1:-1:-1;19564:3:476;;19101:472;-1:-1:-1;;;;;19101:472:476:o;19578:284::-;19773:2;19762:9;19755:21;19736:4;19793:63;19852:2;19841:9;19837:18;19829:6;19793:63;:::i;19867:174::-;19945:5;19990:3;19981:6;19976:3;19972:16;19968:26;19965:46;;;20007:1;20004;19997:12;19965:46;-1:-1:-1;20029:6:476;19867:174;-1:-1:-1;19867:174:476:o;20046:771::-;20313:6;20321;20329;20337;20381:9;20372:7;20368:23;20411:3;20407:2;20403:12;20400:32;;;20428:1;20425;20418:12;20400:32;20451:72;20515:7;20504:9;20451:72;:::i;:::-;20441:82;-1:-1:-1;20558:3:476;-1:-1:-1;;20539:17:476;;20535:27;20532:47;;;20575:1;20572;20565:12;20532:47;20613:3;20598:19;;;-1:-1:-1;20652:2:476;-1:-1:-1;;20633:17:476;;20629:26;20626:46;;;20668:1;20665;20658:12;20626:46;;20706:3;20695:9;20691:19;20681:29;;20729:82;20803:7;20797:3;20786:9;20782:19;20729:82;:::i;:::-;20719:92;;20046:771;;;;;;;:::o;20822:184::-;20892:6;20945:2;20933:9;20924:7;20920:23;20916:32;20913:52;;;20961:1;20958;20951:12;20913:52;-1:-1:-1;20984:16:476;;20822:184;-1:-1:-1;20822:184:476:o;21011:127::-;21072:10;21067:3;21063:20;21060:1;21053:31;21103:4;21100:1;21093:15;21127:4;21124:1;21117:15;21143:786;21216:3;21254:5;21248:12;21281:6;21276:3;21269:19;21307:4;21336;21331:3;21327:14;21320:21;;21375:4;21368:5;21364:16;21398:1;21408:496;21422:6;21419:1;21416:13;21408:496;;;21481:13;;21519:9;;21507:22;;21569:11;;;21563:18;21549:12;;;21542:40;21605:4;21649:11;;;21643:18;21629:12;;;21622:40;21685:4;21729:11;;;21723:18;21709:12;;;21702:40;21765:4;21809:11;;;21803:18;21789:12;;;21782:40;21851:4;21842:14;;;;21879:15;;;;21444:1;21437:9;21408:496;;21934:965;22473:6;22462:9;22455:25;22516:3;22511:2;22500:9;22496:18;22489:31;22436:4;22543:64;22602:3;22591:9;22587:19;22579:6;22543:64;:::i;:::-;22655:9;22647:6;22643:22;22638:2;22627:9;22623:18;22616:50;22689:64;22746:6;22738;22689:64;:::i;:::-;22675:78;;22801:9;22793:6;22789:22;22784:2;22773:9;22769:18;22762:50;22829:64;22886:6;22878;22829:64;:::i;22904:847::-;23118:4;23166:2;23155:9;23151:18;23196:6;23185:9;23178:25;23222:2;23260:1;23256;23251:3;23247:11;23243:19;23310:2;23302:6;23298:15;23293:2;23282:9;23278:18;23271:43;23350:2;23345;23334:9;23330:18;23323:30;23373:6;23408;23402:13;23439:6;23431;23424:22;23477:3;23466:9;23462:19;23455:26;;23516:2;23508:6;23504:15;23490:29;;23537:1;23547:178;23561:6;23558:1;23555:13;23547:178;;;23626:13;;23622:22;;23610:35;;23700:15;;;;23665:12;;;;23583:1;23576:9;23547:178;;;-1:-1:-1;23742:3:476;;22904:847;-1:-1:-1;;;;;;;;;22904:847:476:o;23756:127::-;23817:10;23812:3;23808:20;23805:1;23798:31;23848:4;23845:1;23838:15;23872:4;23869:1;23862:15;23888:439;23941:3;23979:5;23973:12;24006:6;24001:3;23994:19;24032:4;24061;24056:3;24052:14;24045:21;;24100:4;24093:5;24089:16;24123:1;24133:169;24147:6;24144:1;24141:13;24133:169;;;24208:13;;24196:26;;24242:12;;;;24277:15;;;;24169:1;24162:9;24133:169;;24332:358;-1:-1:-1;;;;;24539:32:476;;24521:51;;24608:2;24603;24588:18;;24581:30;;;-1:-1:-1;;24628:56:476;;24665:18;;24657:6;24628:56;:::i;24695:1303::-;24768:3;24812:5;24806:12;24839:4;24834:3;24827:17;24882:12;24876:19;24869:4;24864:3;24860:14;24853:43;24915:4;24974:2;24960:12;24956:21;24950:28;24928:50;;25008:4;25003:2;24998:3;24994:12;24987:26;25050:14;25044:21;25096:2;25090:3;25085;25081:13;25074:25;25120:59;25174:3;25169;25165:13;25149:14;25120:59;:::i;:::-;25216:23;;;25210:30;-1:-1:-1;;25302:14:476;;;25298:23;;25292:3;25283:13;;25276:46;25371:21;;25401:20;;;25475:23;;;;-1:-1:-1;25516:1:476;;25259:8;;25439:13;;;;25526:175;25540:6;25537:1;25534:13;25526:175;;;25603:13;;25589:28;;25676:15;;;;25562:1;25555:9;;;;;25639:14;;;;25526:175;;;25530:3;25758:4;25742:14;25738:25;25732:32;25710:54;;25816:2;25810:3;25803:5;25799:15;25795:24;25789:3;25784;25780:13;25773:47;25842:51;25887:5;25871:14;25842:51;:::i;:::-;25933:14;;;25927:21;-1:-1:-1;;;;;25923:47:476;25909:12;;;;25902:69;;;;-1:-1:-1;25829:64:476;;24695:1303;-1:-1:-1;;;;;24695:1303:476:o;26003:331::-;26232:2;26221:9;26214:21;26195:4;26252:76;26324:2;26313:9;26309:18;26301:6;26252:76;:::i;28279:277::-;28346:6;28399:2;28387:9;28378:7;28374:23;28370:32;28367:52;;;28415:1;28412;28405:12;28367:52;28447:9;28441:16;28500:5;28493:13;28486:21;28479:5;28476:32;28466:60;;28522:1;28519;28512:12;28561:703;28677:6;28730:3;28718:9;28709:7;28705:23;28701:33;28698:53;;;28747:1;28744;28737:12;28698:53;28780:2;28774:9;28822:3;28814:6;28810:16;28892:6;28880:10;28877:22;-1:-1:-1;;;;;28844:10:476;28841:34;28838:62;28835:88;;;28903:18;;:::i;:::-;28943:10;28939:2;28932:22;;28984:9;28978:16;28970:6;28963:32;29049:2;29038:9;29034:18;29028:25;29023:2;29015:6;29011:15;29004:50;29108:2;29097:9;29093:18;29087:25;29082:2;29074:6;29070:15;29063:50;29167:2;29156:9;29152:18;29146:25;29141:2;29133:6;29129:15;29122:50;29227:3;29216:9;29212:19;29206:26;29200:3;29192:6;29188:16;29181:52;29252:6;29242:16;;;28561:703;;;;:::o;29269:175::-;29364:13;;29386:52;29364:13;29386:52;:::i;29449:1176::-;29547:6;29578:3;29622:2;29610:9;29601:7;29597:23;29593:32;29590:52;;;29638:1;29635;29628:12;29590:52;29671:2;29665:9;29701:15;;;;-1:-1:-1;;;;;29731:34:476;;29767:22;;;29728:62;29725:88;;;29793:18;;:::i;:::-;29833:10;29829:2;29822:22;29874:9;29868:16;29860:6;29853:32;29939:2;29928:9;29924:18;29918:25;29913:2;29905:6;29901:15;29894:50;29987:2;29976:9;29972:18;29966:25;29953:38;;30000:52;30046:5;30000:52;:::i;:::-;30085:5;30080:2;30072:6;30068:15;30061:30;30124:65;30185:2;30174:9;30170:18;30124:65;:::i;:::-;30119:2;30111:6;30107:15;30100:90;30224:66;30285:3;30274:9;30270:19;30224:66;:::i;:::-;30218:3;30210:6;30206:16;30199:92;30325:66;30386:3;30375:9;30371:19;30325:66;:::i;:::-;30319:3;30311:6;30307:16;30300:92;30426:66;30487:3;30476:9;30472:19;30426:66;:::i;:::-;30420:3;30412:6;30408:16;30401:92;30527:66;30588:3;30577:9;30573:19;30527:66;:::i;:::-;30521:3;30509:16;;30502:92;30513:6;29449:1176;-1:-1:-1;;;;29449:1176:476:o;30630:648::-;30710:6;30763:2;30751:9;30742:7;30738:23;30734:32;30731:52;;;30779:1;30776;30769:12;30731:52;30812:9;30806:16;-1:-1:-1;;;;;30837:6:476;30834:30;30831:50;;;30877:1;30874;30867:12;30831:50;30900:22;;30953:4;30945:13;;30941:27;-1:-1:-1;30931:55:476;;30982:1;30979;30972:12;30931:55;31011:2;31005:9;31036:48;31052:31;31080:2;31052:31;:::i;31036:48::-;31107:2;31100:5;31093:17;31147:7;31142:2;31137;31133;31129:11;31125:20;31122:33;31119:53;;;31168:1;31165;31158:12;31119:53;31181:67;31245:2;31240;31233:5;31229:14;31224:2;31220;31216:11;31181:67;:::i;31283:1437::-;-1:-1:-1;;;31943:3:476;31936:22;31918:3;31987:6;31981:13;32003:74;32070:6;32066:1;32061:3;32057:11;32050:4;32042:6;32038:17;32003:74;:::i;:::-;32105:6;32100:3;32096:16;32086:26;;-1:-1:-1;;;32164:2:476;32160:1;32156:2;32152:10;32145:22;32198:6;32192:13;32214:76;32281:8;32276:2;32272;32268:11;32261:4;32253:6;32249:17;32214:76;:::i;:::-;32350:2;32309:17;;32342:11;;;32335:23;;;32383:13;;32405:76;32383:13;32467:2;32459:11;;32452:4;32440:17;;32405:76;:::i;:::-;32541:2;32500:17;;32533:11;;;32526:23;32574:13;;32596:76;32574:13;32658:2;32650:11;;32643:4;32631:17;;32596:76;:::i;:::-;32692:17;32711:2;32688:26;;31283:1437;-1:-1:-1;;;;;;31283:1437:476:o;32725:127::-;32786:10;32781:3;32777:20;32774:1;32767:31;32817:4;32814:1;32807:15;32841:4;32838:1;32831:15;32857:135;32896:3;32917:17;;;32914:43;;32937:18;;:::i;:::-;-1:-1:-1;32984:1:476;32973:13;;32857:135::o;32997:128::-;33064:9;;;33085:11;;;33082:37;;;33099:18;;:::i;33466:521::-;33543:4;33549:6;33609:11;33596:25;33703:2;33699:7;33688:8;33672:14;33668:29;33664:43;33644:18;33640:68;33630:96;;33722:1;33719;33712:12;33630:96;33749:33;;33801:20;;;-1:-1:-1;;;;;;33833:30:476;;33830:50;;;33876:1;33873;33866:12;33830:50;33909:4;33897:17;;-1:-1:-1;33940:14:476;33936:27;;;33926:38;;33923:58;;;33977:1;33974;33967:12;33923:58;33466:521;;;;;:::o;33992:440::-;34221:6;34213;34208:3;34195:33;34177:3;34256:6;34251:3;34247:16;34283:1;34279:2;34272:13;34314:6;34308:13;34330:65;34388:6;34384:2;34377:4;34369:6;34365:17;34330:65;:::i;:::-;34411:15;;33992:440;-1:-1:-1;;;;;33992:440:476:o;34750:1277::-;34994:13;;-1:-1:-1;;;;;1023:31:476;1011:44;;34962:3;34947:19;;35066:4;35058:6;35054:17;35048:24;35081:53;35128:4;35117:9;35113:20;35099:12;34727:10;34716:22;34704:35;;34651:94;35081:53;;35183:4;35175:6;35171:17;35165:24;35198:55;35247:4;35236:9;35232:20;35216:14;34727:10;34716:22;34704:35;;34651:94;35198:55;;35302:4;35294:6;35290:17;35284:24;35317:56;35367:4;35356:9;35352:20;35336:14;-1:-1:-1;;;;;1023:31:476;1011:44;;957:104;35317:56;;35422:4;35414:6;35410:17;35404:24;35437:56;35487:4;35476:9;35472:20;35456:14;-1:-1:-1;;;;;1023:31:476;1011:44;;957:104;35437:56;;35542:4;35534:6;35530:17;35524:24;35557:56;35607:4;35596:9;35592:20;35576:14;-1:-1:-1;;;;;1023:31:476;1011:44;;957:104;35557:56;;35662:4;35654:6;35650:17;35644:24;35677:56;35727:4;35716:9;35712:20;35696:14;-1:-1:-1;;;;;1023:31:476;1011:44;;957:104;35677:56;-1:-1:-1;35789:4:476;35777:17;;;35771:24;35749:20;;;35742:54;35815:6;35863:15;;;35857:22;35837:18;;;35830:50;35899:6;35942:15;;;35936:22;-1:-1:-1;;;;;1023:31:476;;36002:18;;;1011:44;35967:54;957:104;36032:292;36122:6;36175:2;36163:9;36154:7;36150:23;36146:32;36143:52;;;36191:1;36188;36181:12;36143:52;36223:9;36217:16;36242:52;36288:5;36242:52;:::i;37551:435::-;37664:5;37651:19;37679:54;37725:7;37679:54;:::i;:::-;-1:-1:-1;;;;;37754:33:476;37742:46;;37836:4;37825:16;;37812:30;-1:-1:-1;;;;;37861:32:476;;37912:15;;;37902:43;;37941:1;37938;37931:12;37902:43;37977:2;37970:4;37965:3;37961:14;37954:26;;;37551:435;;:::o;37991:1092::-;38102:5;38089:19;38117:54;38163:7;38117:54;:::i;:::-;-1:-1:-1;;;;;38230:16:476;;;38218:29;;38295:4;38284:16;;38271:30;;38310:54;38271:30;38310:54;:::i;:::-;38396:16;;;38389:4;38380:14;;38373:40;38461:4;38450:16;;38437:30;;38476:54;38437:30;38476:54;:::i;:::-;38562:16;;;38555:4;38546:14;;38539:40;38627:4;38616:16;;38603:30;;38642:54;38603:30;38642:54;:::i;:::-;38728:16;;;38721:4;38712:14;;38705:40;38793:4;38782:16;;38769:30;;38808:54;38769:30;38808:54;:::i;:::-;38894:16;;;38887:4;38878:14;;38871:40;38959:4;38948:16;;38935:30;;38974:54;38935:30;38974:54;:::i;:::-;39073:2;39064:7;39060:16;39053:4;39048:3;39044:14;39037:40;;;37991:1092;;:::o;39088:1532::-;39682:4;39724:3;39713:9;39709:19;39701:27;;39764:1;39760;39755:3;39751:11;39747:19;39805:2;39797:6;39793:15;39782:9;39775:34;39857:2;39849:6;39845:15;39840:2;39829:9;39825:18;39818:43;39910:6;39897:20;39892:2;39881:9;39877:18;39870:48;39979:2;39971:6;39967:15;39954:29;39949:2;39938:9;39934:18;39927:57;40046:2;40038:6;40034:15;40021:29;40015:3;40004:9;40000:19;39993:58;40113:2;40105:6;40101:15;40088:29;40082:3;40071:9;40067:19;40060:58;40180:3;40172:6;40168:16;40155:30;40149:3;40138:9;40134:19;40127:59;40233:3;40225:6;40221:16;40208:30;40247:52;40293:5;40247:52;:::i;:::-;40336:14;40330:3;40315:19;;40308:43;37268:19;;40437:3;40422:19;;37256:32;37344:4;37333:16;;37320:30;37304:14;;;37297:54;37407:4;37396:16;;37383:30;37367:14;;;37360:54;37470:4;37459:16;;37446:30;37430:14;;;37423:54;37533:4;37522:16;;37509:30;37493:14;;;37486:54;40451:78;40524:3;40513:9;40509:19;40501:6;40451:78;:::i;:::-;40538:76;40609:3;40598:9;40594:19;40586:6;40538:76;:::i;41239:287::-;41368:3;41406:6;41400:13;41422:66;41481:6;41476:3;41469:4;41461:6;41457:17;41422:66;:::i;:::-;41504:16;;;;;41239:287;-1:-1:-1;;41239:287:476:o", + "object": "0x60806040526004361061025f575f3560e01c806386eeeb5a1161013f578063ad3cb1cc116100b3578063d152e23611610078578063d152e23614610762578063d547741f14610781578063e8d353c7146107a0578063eb44fdd3146107bf578063ec2c9016146107de578063f0fb716f146107ff575f80fd5b8063ad3cb1cc146106b6578063b1ef804d146106e6578063b4cd6bd114610705578063c4d66de814610724578063c8fb624714610743575f80fd5b80639e42bfa3116101045780639e42bfa3146106065780639feffdb014610625578063a217fddf14610644578063a78ec6ae14610657578063a7b2b31014610676578063ac9650d81461068a575f80fd5b806386eeeb5a1461056b57806388d765201461058a57806391c769ce146105a957806391d14854146105c8578063973cf867146105e7575f80fd5b806352d1902d116101d65780636ec934da1161019b5780636ec934da146104865780636ed41835146104a5578063732218f9146104c45780637643d7ec146104e35780637b8dedad1461050457806381de274c14610540575f80fd5b806352d1902d146103de57806354fd4d50146103f25780635ec49544146104295780635fb7f10c14610448578063678b9bad14610467575f80fd5b806327fa35c31161022757806327fa35c31461033b5780632f2ff15d1461034f57806336568abe1461036e57806337c11b2a1461038d578063495e6d89146103ac5780634f1ef286146103cb575f80fd5b806301a6c8721461026357806301ffc9a7146102845780631286a2dc146102b85780631e4fcddb146102ef578063248a9ca31461030e575b5f80fd5b34801561026e575f80fd5b5061028261027d36600461222c565b61081e565b005b34801561028f575f80fd5b506102a361029e366004612247565b610884565b60405190151581526020015b60405180910390f35b3480156102c3575f80fd5b506007546102d7906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b3480156102fa575f80fd5b5061028261030936600461222c565b6108ba565b348015610319575f80fd5b5061032d61032836600461227e565b610947565b6040519081526020016102af565b348015610346575f80fd5b5061032d610967565b34801561035a575f80fd5b50610282610369366004612295565b610976565b348015610379575f80fd5b50610282610388366004612295565b610998565b348015610398575f80fd5b50600a546102d7906001600160a01b031681565b3480156103b7575f80fd5b5061032d6103c63660046122c3565b6109d0565b6102826103d93660046123cf565b610a67565b3480156103e9575f80fd5b5061032d610a86565b3480156103fd575f80fd5b5060408051808201909152600681526576312e382e3160d01b60208201525b6040516102af91906124a8565b348015610434575f80fd5b5061041c6104433660046124ba565b610aa1565b348015610453575f80fd5b5061032d6104623660046122c3565b610b20565b348015610472575f80fd5b506102a3610481366004612537565b610b70565b348015610491575f80fd5b506102a36104a036600461222c565b610bf3565b3480156104b0575f80fd5b506102826104bf3660046125c8565b610bfe565b3480156104cf575f80fd5b506102826104de366004612680565b610c0a565b3480156104ee575f80fd5b506104f7610cb8565b6040516102af91906126c3565b34801561050f575f80fd5b5061032d61051e366004612725565b600860209081525f938452604080852082529284528284209052825290205481565b34801561054b575f80fd5b5061032d61055a36600461222c565b60096020525f908152604090205481565b348015610576575f80fd5b506102a3610585366004612764565b610fe6565b348015610595575f80fd5b506102826105a43660046127a4565b611056565b3480156105b4575f80fd5b506102826105c33660046127f4565b6110d8565b3480156105d3575f80fd5b506102a36105e2366004612295565b6110e3565b3480156105f2575f80fd5b506006546102d7906001600160a01b031681565b348015610611575f80fd5b5061028261062036600461281e565b611119565b348015610630575f80fd5b506102a361063f366004612537565b611126565b34801561064f575f80fd5b5061032d5f81565b348015610662575f80fd5b506102a361067136600461284f565b61116e565b348015610681575f80fd5b506102826111d3565b348015610695575f80fd5b506106a96106a436600461288d565b61121e565b6040516102af91906128fb565b3480156106c1575f80fd5b5061041c604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156106f1575f80fd5b50610282610700366004612680565b611303565b348015610710575f80fd5b5061028261071f36600461222c565b61134e565b34801561072f575f80fd5b5061028261073e36600461222c565b6113db565b34801561074e575f80fd5b5061028261075d36600461281e565b61156c565b34801561076d575f80fd5b506102d761077c366004612963565b611576565b34801561078c575f80fd5b5061028261079b366004612295565b611633565b3480156107ab575f80fd5b506102d76107ba366004612a1c565b61164f565b3480156107ca575f80fd5b506102d76107d936600461227e565b61172e565b3480156107e9575f80fd5b506107f2611739565b6040516102af9190612a48565b34801561080a575f80fd5b506102d7610819366004612aaa565b6117ce565b5f610828816118b2565b600a546040516001600160a01b038085169216907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae905f90a350600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160e01b03198216637965db0b60e01b14806108b457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6108c4816118b2565b6001600160a01b0382166108eb5760405163de0ce17d60e01b815260040160405180910390fd5b6007546040516001600160a01b038085169216907faefd875bf3940c57f185da0affbb82ce03656890d6e1d29310e8b4bf9d20b7c1905f90a350600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f9081525f805160206131b3833981519152602052604090206001015490565b5f6109715f6118bc565b905090565b61097f82610947565b610988816118b2565b61099283836118c5565b50505050565b6001600160a01b03811633146109c15760405163334bd91960e11b815260040160405180910390fd5b6109cb8282611966565b505050565b600a5460405163495e6d8960e01b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f92169063495e6d899060a4015b602060405180830381865afa158015610a37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5b9190612b15565b90505b95945050505050565b610a6f6119df565b610a7882611a85565b610a828282611a8f565b5050565b5f610a8f611b4b565b505f8051602061319383398151915290565b6060610aac84610bf3565b610ad95760405163e2a7bea360e01b81526001600160a01b03851660048201526024015b60405180910390fd5b610b188484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b9492505050565b949350505050565b600a546040516317edfc4360e21b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f921690635fb7f10c9060a401610a1c565b600a5460405163678b9bad60e01b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f92169063678b9bad906084015b602060405180830381865afa158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5e9190612b2c565b5f6108b48183611ba1565b6109cb83838333611056565b610c163382600b610fe6565b610c55573381600b5b60405163062709f360e41b81526001600160a01b03938416600482015292909116602483015260ff166044820152606401610ad0565b600a546040516301bc3d7160e71b81526001600160a01b039091169063de1eb88090610c879084908690600401612b5f565b5f604051808303815f87803b158015610c9e575f80fd5b505af1158015610cb0573d5f803e3d5ffd5b505050505050565b6060610cc35f6118bc565b6001600160401b03811115610cda57610cda61231a565b604051908082528060200260200182016040528015610d0d57816020015b6060815260200190600190039081610cf85790505b5090505f5b8151811015610fe2575f610d268183611bc2565b90505f610da06064836001600160a01b0316637c90a6ca6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610d6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8e9190612bb4565b60200151670de0b6b3a7640000611bcd565b9050816001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190612c0d565b604001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610e41573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e689190810190612cc6565b826001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa158015610ea5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec99190612c0d565b606001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f07573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f2e9190810190612cc6565b610f3783611bd9565b846001600160a01b03166354fd4d506040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f72573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f999190810190612cc6565b604051602001610fac9493929190612d2e565b604051602081830303815290604052848481518110610fcd57610fcd612dba565b60209081029190910101525050600101610d12565b5090565b5f826001600160a01b0316846001600160a01b0316036110085750600161104f565b6001600160a01b038084165f8181526009602090815260408083205480845260088352818420958a168452948252808320938352929052205461104b9084611c68565b9150505b9392505050565b6110623382600b610fe6565b61106f573381600b610c1f565b600a546040516318d5932d60e01b81526001600160a01b03909116906318d5932d906110a5908490889088908890600401612dce565b5f604051808303815f87803b1580156110bc575f80fd5b505af11580156110ce573d5f803e3d5ffd5b5050505050505050565b610a82823383611c8a565b5f9182525f805160206131b3833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6111238133610c0a565b50565b600a546040516309feffdb60e41b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f921690639feffdb090608401610bb4565b5f826001600160a01b0316846001600160a01b0316036111905750600161104f565b506001600160a01b038281165f8181526009602090815260408083205483526008825280832094881683529381528382209282529190915220548116811461104f565b60405133907fecbee29490a7e5456f4e3aab0700477764e3f16dda5a21ea92f43f1cfcb15799905f90a2335f90815260096020526040812080549161121783612e6a565b9190505550565b604080515f815260208101909152606090826001600160401b038111156112475761124761231a565b60405190808252806020026020018201604052801561127a57816020015b60608152602001906001900390816112655790505b5091505f5b838110156112fb576112d63086868481811061129d5761129d612dba565b90506020028101906112af9190612e95565b856040516020016112c293929190612ede565b604051602081830303815290604052611d72565b8382815181106112e8576112e8612dba565b602090810291909101015260010161127f565b505092915050565b61130f3382600b610fe6565b61131c573381600b610c1f565b600a546040516393c0d3f360e01b81526001600160a01b03909116906393c0d3f390610c879084908690600401612b5f565b5f611358816118b2565b6001600160a01b03821661137f5760405163de0ce17d60e01b815260040160405180910390fd5b6006546040516001600160a01b038085169216907ffb3d0b43c5121de915eeb8fa2fb4bb792b6b05d5d6f3df7630aac9d9e8697312905f90a350600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f6113e4611ddb565b805490915060ff600160401b82041615906001600160401b03165f8115801561140a5750825b90505f826001600160401b031660011480156114255750303b155b905081158015611433575080155b156114515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561147b57845460ff60401b1916600160401b1785555b611483611e03565b61148b611e03565b611493611e03565b61149d5f876118c5565b506114c87f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a876118c5565b506114f37ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab876118c5565b5061151e7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd24038876118c5565b508315610cb057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6111238133611303565b5f80611581816118b2565b60405163145b6cb960e11b815273__$8498e19059e8c9c59d07dfb635c44386c6$__906328b6d972906115b8908690600401612f03565b602060405180830381865af41580156115d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f79190612fe0565b6040519092506001600160a01b038316907f970cbcaabfe7c54976df22e530fb6ef3a9202796c410ae94972a9b109d5b2ca8905f90a250919050565b61163c82610947565b611645816118b2565b6109928383611966565b5f8061165a816118b2565b6007546040516302a8408560e11b81526001600160a01b03918216600482015233602482018190528683166044830152918516606482015273__$c583a0fe7c050ce40cdddde89e71ac1899$__90630550810a90608401602060405180830381865af41580156116cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f09190612fe0565b6040519093506001600160a01b038416907f798adeb18dd44bd81e89d3ab4aa52d11e6d22b3ab80b11da6844ec0eda2a0810905f90a2505092915050565b5f6108b48183611bc2565b60606117445f6118bc565b6001600160401b0381111561175b5761175b61231a565b604051908082528060200260200182016040528015611784578160200160208202803683370190505b5090505f5b8151811015610fe25761179c5f82611bc2565b8282815181106117ae576117ae612dba565b6001600160a01b0390921660209283029190910190910152600101611789565b5f806117d9816118b2565b60065460405163d41bcfc560e01b8152339173__$74708c40afd3f014cbcff13274aefc3e53$__9163d41bcfc591611829916001600160a01b039091169085908c908c908c908c906004016130c8565b602060405180830381865af4158015611844573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118689190612fe0565b92506118745f84611e0b565b506040516001600160a01b038416907ffa970ff5f178441bbe297db8d35a584c9bd6628b17b82d80dc8f5b80063102ca905f90a25050949350505050565b6111238133611e1f565b5f6108b4825490565b5f5f805160206131b38339815191526118de84846110e3565b61195d575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556119133390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506108b4565b5f9150506108b4565b5f5f805160206131b383398151915261197f84846110e3565b1561195d575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506108b4565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611a6557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a595f80516020613193833981519152546001600160a01b031690565b6001600160a01b031614155b15611a835760405163703e46dd60e11b815260040160405180910390fd5b565b5f610a82816118b2565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611ae9575060408051601f3d908101601f19168201909252611ae691810190612b15565b60015b611b1157604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610ad0565b5f805160206131938339815191528114611b4157604051632a87526960e21b815260048101829052602401610ad0565b6109cb8383611e58565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a835760405163703e46dd60e11b815260040160405180910390fd5b606061104f83835f611ead565b6001600160a01b0381165f908152600183016020526040812054151561104f565b5f61104f8383611f4d565b5f610b18848484611f73565b60605f611be583611f97565b60010190505f816001600160401b03811115611c0357611c0361231a565b6040519080825280601f01601f191660200182016040528015611c2d576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611c3757509392505050565b5f81600c811115611c7b57611c7b612b4b565b6001901b831615159392505050565b6001600160a01b038316611cb15760405163de0ce17d60e01b815260040160405180910390fd5b611cba8161206e565b611cda57604051632e40743360e01b815260048101829052602401610ad0565b6001600160a01b0382165f9081526009602052604090205481846001600160a01b0316846001600160a01b03167f89733de2d64cea40de091169750607b26e8d46142312fba65fb6476c790bad4984604051611d3891815260200190565b60405180910390a45f9081526008602090815260408083206001600160a01b03968716845282528083209490951682529290925291902055565b60605f80846001600160a01b031684604051611d8e9190613177565b5f60405180830381855af49150503d805f8114611dc6576040519150601f19603f3d011682016040523d82523d5f602084013e611dcb565b606091505b5091509150610a5e858383612087565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108b4565b611a836120e3565b5f61104f836001600160a01b038416612108565b611e2982826110e3565b610a825760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610ad0565b611e6182612154565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611ea5576109cb8282611d72565b610a826121b7565b606081471015611ed95760405163cf47918160e01b815247600482015260248101839052604401610ad0565b5f80856001600160a01b03168486604051611ef49190613177565b5f6040518083038185875af1925050503d805f8114611f2e576040519150601f19603f3d011682016040523d82523d5f602084013e611f33565b606091505b5091509150611f43868383612087565b9695505050505050565b5f825f018281548110611f6257611f62612dba565b905f5260205f200154905092915050565b5f825f190484118302158202611f905763ad251c275f526004601cfd5b5091020490565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611fd55772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612001576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061201f57662386f26fc10000830492506010015b6305f5e1008310612037576305f5e100830492506008015b612710831061204b57612710830492506004015b6064831061205d576064830492506002015b600a83106108b45760010192915050565b5f8061207d6001611000612e82565b9092111592915050565b60608261209c57612097826121d6565b61104f565b81511580156120b357506001600160a01b0384163b155b156120dc57604051639996b31560e01b81526001600160a01b0385166004820152602401610ad0565b508061104f565b6120eb6121ff565b611a8357604051631afcd79f60e31b815260040160405180910390fd5b5f81815260018301602052604081205461214d57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556108b4565b505f6108b4565b806001600160a01b03163b5f0361218957604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610ad0565b5f8051602061319383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b3415611a835760405163b398979f60e01b815260040160405180910390fd5b8051156121e65780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f612208611ddb565b54600160401b900460ff16919050565b6001600160a01b0381168114611123575f80fd5b5f6020828403121561223c575f80fd5b813561104f81612218565b5f60208284031215612257575f80fd5b81356001600160e01b03198116811461104f575f80fd5b803561227981612218565b919050565b5f6020828403121561228e575f80fd5b5035919050565b5f80604083850312156122a6575f80fd5b8235915060208301356122b881612218565b809150509250929050565b5f805f805f60a086880312156122d7575f80fd5b85356122e281612218565b94506020860135935060408601356122f981612218565b9250606086013561230981612218565b949793965091946080013592915050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156123505761235061231a565b60405290565b60405161014081016001600160401b03811182821017156123505761235061231a565b604051601f8201601f191681016001600160401b03811182821017156123a1576123a161231a565b604052919050565b5f6001600160401b038211156123c1576123c161231a565b50601f01601f191660200190565b5f80604083850312156123e0575f80fd5b82356123eb81612218565b915060208301356001600160401b03811115612405575f80fd5b8301601f81018513612415575f80fd5b8035612428612423826123a9565b612379565b81815286602083850101111561243c575f80fd5b816020840160208301375f602083830101528093505050509250929050565b5f5b8381101561247557818101518382015260200161245d565b50505f910152565b5f815180845261249481602086016020860161245b565b601f01601f19169290920160200192915050565b602081525f61104f602083018461247d565b5f805f604084860312156124cc575f80fd5b83356124d781612218565b925060208401356001600160401b03808211156124f2575f80fd5b818601915086601f830112612505575f80fd5b813581811115612513575f80fd5b876020828501011115612524575f80fd5b6020830194508093505050509250925092565b5f805f806080858703121561254a575f80fd5b843561255581612218565b935060208501359250604085013561256c81612218565b9396929550929360600135925050565b5f60a0828403121561258c575f80fd5b61259461232e565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f805f61016084860312156125db575f80fd5b833592506125ec856020860161257c565b91506125fb8560c0860161257c565b90509250925092565b5f82601f830112612613575f80fd5b813560206001600160401b0382111561262e5761262e61231a565b8160051b61263d828201612379565b9283528481018201928281019087851115612656575f80fd5b83870192505b848310156126755782358252918301919083019061265c565b979650505050505050565b5f8060408385031215612691575f80fd5b82356001600160401b038111156126a6575f80fd5b6126b285828601612604565b92505060208301356122b881612218565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561271857603f1988860301845261270685835161247d565b945092850192908501906001016126ea565b5092979650505050505050565b5f805f60608486031215612737575f80fd5b83359250602084013561274981612218565b9150604084013561275981612218565b809150509250925092565b5f805f60608486031215612776575f80fd5b833561278181612218565b9250602084013561279181612218565b91506040840135600d8110612759575f80fd5b5f805f8061018085870312156127b8575f80fd5b843593506127c9866020870161257c565b92506127d88660c0870161257c565b91506101608501356127e981612218565b939692955090935050565b5f8060408385031215612805575f80fd5b823561281081612218565b946020939093013593505050565b5f6020828403121561282e575f80fd5b81356001600160401b03811115612843575f80fd5b610b1884828501612604565b5f805f60608486031215612861575f80fd5b833561286c81612218565b9250602084013561287c81612218565b929592945050506040919091013590565b5f806020838503121561289e575f80fd5b82356001600160401b03808211156128b4575f80fd5b818501915085601f8301126128c7575f80fd5b8135818111156128d5575f80fd5b8660208260051b85010111156128e9575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561271857603f1988860301845261293e85835161247d565b94509285019290850190600101612922565b803563ffffffff81168114612279575f80fd5b5f6101408284031215612974575f80fd5b61297c612356565b6129858361226e565b815261299360208401612950565b60208201526129a460408401612950565b60408201526129b56060840161226e565b60608201526129c66080840161226e565b60808201526129d760a0840161226e565b60a08201526129e860c0840161226e565b60c082015260e083013560e0820152610100808401358183015250610120612a1181850161226e565b908201529392505050565b5f8060408385031215612a2d575f80fd5b8235612a3881612218565b915060208301356122b881612218565b602080825282518282018190525f9190848201906040850190845b81811015612a885783516001600160a01b031683529284019291840191600101612a63565b50909695505050505050565b5f60c08284031215612aa4575f80fd5b50919050565b5f805f80848603610260811215612abf575f80fd5b612ac98787612a94565b945060a060bf1982011215612adc575f80fd5b60c086019350604061015f1982011215612af4575f80fd5b5061016085019150612b0a866101a08701612a94565b905092959194509250565b5f60208284031215612b25575f80fd5b5051919050565b5f60208284031215612b3c575f80fd5b8151801515811461104f575f80fd5b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b03831681526040602080830182905283519183018290525f9184820191906060850190845b81811015612ba757845183529383019391830191600101612b8b565b5090979650505050505050565b5f60a08284031215612bc4575f80fd5b612bcc61232e565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b805161227981612218565b5f610100808385031215612c1f575f80fd5b604051908101906001600160401b0382118183101715612c4157612c4161231a565b81604052835181526020840151602082015260408401519150612c6382612218565b816040820152612c7560608501612c02565b6060820152612c8660808501612c02565b6080820152612c9760a08501612c02565b60a0820152612ca860c08501612c02565b60c0820152612cb960e08501612c02565b60e0820152949350505050565b5f60208284031215612cd6575f80fd5b81516001600160401b03811115612ceb575f80fd5b8201601f81018413612cfb575f80fd5b8051612d09612423826123a9565b818152856020838501011115612d1d575f80fd5b610a5e82602083016020860161245b565b66029b4bd32903e160cd1b81525f8551612d4f816007850160208a0161245b565b8083019050620103e160ed1b8060078301528651612d7481600a850160208b0161245b565b600a92019182018190528551612d9181600d850160208a0161245b565b600d9201918201528351612dac81601084016020880161245b565b016010019695505050505050565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b0385168152602081018490526101808101612e1e604083018580518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b825160e08301526020830151610100830152604083015161012083015260608301516101408301526080830151610160830152610a5e565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612e7b57612e7b612e56565b5060010190565b818103818111156108b4576108b4612e56565b5f808335601e19843603018112612eaa575f80fd5b8301803591506001600160401b03821115612ec3575f80fd5b602001915036819003821315612ed7575f80fd5b9250929050565b828482375f8382015f81528351612ef981836020880161245b565b0195945050505050565b81516001600160a01b0316815261014081016020830151612f2c602084018263ffffffff169052565b506040830151612f44604084018263ffffffff169052565b506060830151612f5f60608401826001600160a01b03169052565b506080830151612f7a60808401826001600160a01b03169052565b5060a0830151612f9560a08401826001600160a01b03169052565b5060c0830151612fb060c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120808401516001600160a01b038116828501526112fb565b5f60208284031215612ff0575f80fd5b815161104f81612218565b803561300681612218565b6001600160a01b0316825260208101356001600160401b03811680821461302b575f80fd5b80602085015250505050565b803561304281612218565b6001600160a01b03908116835260208201359061305e82612218565b908116602084015260408201359061307582612218565b908116604084015260608201359061308c82612218565b90811660608401526080820135906130a382612218565b908116608084015260a0820135906130ba82612218565b80821660a085015250505050565b5f6102a08201905060018060a01b0380891683528088166020840152863560408401526020870135606084015260408701356080840152606087013560a0840152608087013560c084015260a087013561312181612218565b1660e0830152843561010083015260208501356101208301526040850135610140830152606085013561016083015260808501356101808301526131696101a0830185612ffb565b6126756101e0830184613037565b5f825161318881846020870161245b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212204a06383b44d8de699bf87696a34408a27b032833876bb17147f11c2dc8539a1b64736f6c63430008170033", + "sourceMap": "3419:9203:265:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5201:262;;;;;;;;;;-1:-1:-1;5201:262:265;;;;;:::i;:::-;;:::i;:::-;;3443:202:84;;;;;;;;;;-1:-1:-1;3443:202:84;;;;;:::i;:::-;;:::i;:::-;;;930:14:486;;923:22;905:41;;893:2;878:18;3443:202:84;;;;;;;;1013:55:268;;;;;;;;;;-1:-1:-1;1013:55:268;;;;-1:-1:-1;;;;;1013:55:268;;;;;;-1:-1:-1;;;;;1230:32:486;;;1212:51;;1200:2;1185:18;1013:55:268;1066:203:486;4628:567:265;;;;;;;;;;-1:-1:-1;4628:567:265;;;;;:::i;:::-;;:::i;4759:191:84:-;;;;;;;;;;-1:-1:-1;4759:191:84;;;;;:::i;:::-;;:::i;:::-;;;2038:25:486;;;2026:2;2011:18;4759:191:84;1892:177:486;1437:99:267;;;;;;;;;;;;;:::i;5246:136:84:-;;;;;;;;;;-1:-1:-1;5246:136:84;;;;;:::i;:::-;;:::i;6348:245::-;;;;;;;;;;-1:-1:-1;6348:245:84;;;;;:::i;:::-;;:::i;1517:45:268:-;;;;;;;;;;-1:-1:-1;1517:45:268;;;;-1:-1:-1;;;;;1517:45:268;;;11785:283:265;;;;;;;;;;-1:-1:-1;11785:283:265;;;;;:::i;:::-;;:::i;4161:214:88:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;3398:88:267:-;;;;;;;;;;-1:-1:-1;3472:7:267;;;;;;;;;;;;-1:-1:-1;;;3472:7:267;;;;3398:88;;;;;;;:::i;8807:274:265:-;;;;;;;;;;-1:-1:-1;8807:274:265;;;;;:::i;:::-;;:::i;11463:279::-;;;;;;;;;;-1:-1:-1;11463:279:265;;;;;:::i;:::-;;:::i;12074:270::-;;;;;;;;;;-1:-1:-1;12074:270:265;;;;;:::i;:::-;;:::i;7114:115::-;;;;;;;;;;-1:-1:-1;7114:115:265;;;;;:::i;:::-;;:::i;10409:373::-;;;;;;;;;;-1:-1:-1;10409:373:265;;;;;:::i;:::-;;:::i;9984:419::-;;;;;;;;;;-1:-1:-1;9984:419:265;;;;;:::i;:::-;;:::i;1885:825:267:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1153:171:268:-;;;;;;;;;;-1:-1:-1;1153:171:268;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1397:71;;;;;;;;;;-1:-1:-1;1397:71:268;;;;;:::i;:::-;;;;;;;;;;;;;;8405:359:265;;;;;;;;;;-1:-1:-1;8405:359:265;;;;;:::i;:::-;;:::i;10788:632::-;;;;;;;;;;-1:-1:-1;10788:632:265;;;;;:::i;:::-;;:::i;7272:227::-;;;;;;;;;;-1:-1:-1;7272:227:265;;;;;:::i;:::-;;:::i;3732:207:84:-;;;;;;;;;;-1:-1:-1;3732:207:84;;;;;:::i;:::-;;:::i;899:33:268:-;;;;;;;;;;-1:-1:-1;899:33:268;;;;-1:-1:-1;;;;;899:33:268;;;9323:164:265;;;;;;;;;;-1:-1:-1;9323:164:265;;;;;:::i;:::-;;:::i;12350:270::-;;;;;;;;;;-1:-1:-1;12350:270:265;;;;;:::i;:::-;;:::i;2317:49:84:-;;;;;;;;;;-1:-1:-1;2317:49:84;2362:4;2317:49;;2764:580:267;;;;;;;;;;-1:-1:-1;2764:580:267;;;;;:::i;:::-;;:::i;8191:171:265:-;;;;;;;;;;;;;:::i;1518:484:92:-;;;;;;;;;;-1:-1:-1;1518:484:92;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1819:58:88:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:88;;;;;9530:411:265;;;;;;;;;;-1:-1:-1;9530:411:265;;;;;:::i;:::-;;:::i;4256:333::-;;;;;;;;;;-1:-1:-1;4256:333:265;;;;;:::i;:::-;;:::i;3765:343::-;;;;;;;;;;-1:-1:-1;3765:343:265;;;;;:::i;:::-;;:::i;9124:156::-;;;;;;;;;;-1:-1:-1;9124:156:265;;;;;:::i;:::-;;:::i;6777:298::-;;;;;;;;;;-1:-1:-1;6777:298:265;;;;;:::i;:::-;;:::i;5662:138:84:-;;;;;;;;;;-1:-1:-1;5662:138:84;;;;;:::i;:::-;;:::i;6194:544:265:-;;;;;;;;;;-1:-1:-1;6194:544:265;;;;;:::i;:::-;;:::i;1271:112:267:-;;;;;;;;;;-1:-1:-1;1271:112:267;;;;;:::i;:::-;;:::i;1590:241::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5502:653:265:-;;;;;;;;;;-1:-1:-1;5502:653:265;;;;;:::i;:::-;;:::i;5201:262::-;2362:4:84;3191:16;2362:4;3191:10;:16::i;:::-;5356:18:265::1;::::0;5326:80:::1;::::0;-1:-1:-1;;;;;5326:80:265;;::::1;::::0;5356:18:::1;::::0;5326:80:::1;::::0;5356:18:::1;::::0;5326:80:::1;-1:-1:-1::0;5416:18:265::1;:40:::0;;-1:-1:-1;;;;;;5416:40:265::1;-1:-1:-1::0;;;;;5416:40:265;;;::::1;::::0;;;::::1;::::0;;5201:262::o;3443:202:84:-;3528:4;-1:-1:-1;;;;;;3551:47:84;;-1:-1:-1;;;3551:47:84;;:87;;-1:-1:-1;;;;;;;;;;1134:40:95;;;3602:36:84;3544:94;3443:202;-1:-1:-1;;3443:202:84:o;4628:567:265:-;2362:4:84;3191:16;2362:4;3191:10;:16::i;:::-;-1:-1:-1;;;;;4812:55:265;::::1;4808:114;;4890:21;;-1:-1:-1::0;;;4890:21:265::1;;;;;;;;;;;4808:114;5001:40;::::0;4936:158:::1;::::0;-1:-1:-1;;;;;4936:158:265;;::::1;::::0;5001:40:::1;::::0;4936:158:::1;::::0;5001:40:::1;::::0;4936:158:::1;-1:-1:-1::0;5104:40:265::1;:84:::0;;-1:-1:-1;;;;;;5104:84:265::1;-1:-1:-1::0;;;;;5104:84:265;;;::::1;::::0;;;::::1;::::0;;4628:567::o;4759:191:84:-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:84;;;;;:24;;;;4759:191::o;1437:99:267:-;1487:7;1513:16;:7;:14;:16::i;:::-;1506:23;;1437:99;:::o;5246:136:84:-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;:::-;;5246:136:::0;;;:::o;6348:245::-;-1:-1:-1;;;;;6441:34:84;;966:10:91;6441:34:84;6437:102;;6498:30;;-1:-1:-1;;;6498:30:84;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;:::-;;6348:245;;:::o;11785:283:265:-;11976:18;;:85;;-1:-1:-1;;;11976:85:265;;-1:-1:-1;;;;;20004:15:486;;;11976:85:265;;;19986:34:486;20036:18;;;20029:34;;;20099:15;;;20079:18;;;20072:43;20151:15;;;20131:18;;;20124:43;20183:19;;;20176:35;;;11946:7:265;;11976:18;;:36;;19920:19:486;;11976:85:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11969:92;;11785:283;;;;;;;;:::o;4161:214:88:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;:::-;4161:214:::0;;:::o;3708:134::-;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:88;:::o;8807:274:265:-;8880:19;8916:25;8933:6;8916:8;:25::i;:::-;8911:102;;8964:38;;-1:-1:-1;;;8964:38:265;;-1:-1:-1;;;;;1230:32:486;;8964:38:265;;;1212:51:486;1185:18;;8964:38:265;;;;;;;;8911:102;9031:43;9060:6;9069:4;;9031:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9031:20:265;;-1:-1:-1;;;9031:43:265:i;:::-;9022:52;8807:274;-1:-1:-1;;;;8807:274:265:o;11463:279::-;11652:18;;:83;;-1:-1:-1;;;11652:83:265;;-1:-1:-1;;;;;20004:15:486;;;11652:83:265;;;19986:34:486;20036:18;;;20029:34;;;20099:15;;;20079:18;;;20072:43;20151:15;;;20131:18;;;20124:43;20183:19;;;20176:35;;;11622:7:265;;11652:18;;:34;;19920:19:486;;11652:83:265;19673:544:486;12074:270:265;12253:18;;:84;;-1:-1:-1;;;12253:84:265;;-1:-1:-1;;;;;20714:15:486;;;12253:84:265;;;20696:34:486;20746:18;;;20739:34;;;20809:15;;;20789:18;;;20782:43;20841:18;;;20834:34;;;12226:4:265;;12253:18;;:52;;20630:19:486;;12253:84:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7114:115::-;7172:4;7195:27;7172:4;7212:9;7195:16;:27::i;10409:373::-;10635:140;10697:12;10711:19;10732:21;10755:10;10635:48;:140::i;9984:419::-;10104:76;10117:10;10129;10141:38;10104:12;:76::i;:::-;10099:212;;10230:10;10242;10260:38;10254:45;10203:97;;-1:-1:-1;;;10203:97:265;;-1:-1:-1;;;;;21547:15:486;;;10203:97:265;;;21529:34:486;21599:15;;;;21579:18;;;21572:43;21663:4;21651:17;21631:18;;;21624:45;21464:18;;10203:97:265;21293:382:486;10099:212:265;10320:18;;:76;;-1:-1:-1;;;10320:76:265;;-1:-1:-1;;;;;10320:18:265;;;;:49;;:76;;10370:10;;10382:13;;10320:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9984:419;;:::o;1885:825:267:-;1941:28;2009:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1996:30:267;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:45;;2085:9;2080:582;2104:12;:19;2100:1;:23;2080:582;;;2144:10;2163:13;2144:10;2174:1;2163:10;:13::i;:::-;2144:33;;2191:28;2222:62;2238:3;2243:4;-1:-1:-1;;;;;2243:15:267;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;183:4:294;2222:15:267;:62::i;:::-;2191:93;;2374:4;-1:-1:-1;;;;;2374:9:267;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;;-1:-1:-1;;;;;2374:44:267;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2374:46:267;;;;;;;;;;;;:::i;:::-;2461:4;-1:-1:-1;;;;;2461:9:267;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;;-1:-1:-1;;;;;2461:40:267;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2461:42:267;;;;;;;;;;;;:::i;:::-;2544:38;2561:20;2544:16;:38::i;:::-;2623:4;-1:-1:-1;;;;;2623:12:267;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2623:14:267;;;;;;;;;;;;:::i;:::-;2316:335;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2298:12;2311:1;2298:15;;;;;;;;:::i;:::-;;;;;;;;;;:353;-1:-1:-1;;2125:3:267;;2080:582;;;;1885:825;:::o;8405:359:265:-;8501:4;8533:10;-1:-1:-1;;;;;8521:22:265;:8;-1:-1:-1;;;;;8521:22:265;;8517:241;;-1:-1:-1;8566:4:265;8559:11;;8517:241;-1:-1:-1;;;;;8617:31:265;;;8601:13;8617:31;;;:19;:31;;;;;;;;;8695:21;;;:14;:21;;;;;:31;;;;;;;;;;;:43;;;;;;;;8669:78;;8740:6;8669:25;:78::i;:::-;8662:85;;;8517:241;8405:359;;;;;:::o;10788:632::-;11048:76;11061:10;11073;11085:38;11048:12;:76::i;:::-;11043:212;;11174:10;11186;11204:38;11198:45;;11043:212;11264:18;;:149;;-1:-1:-1;;;11264:149:265;;-1:-1:-1;;;;;11264:18:265;;;;:57;;:149;;11335:10;;11347:12;;11361:19;;11382:21;;11264:149;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10788:632;;;;:::o;7272:227::-;7438:54;7456:8;7466:10;7478:13;7438:17;:54::i;3732:207:84:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:84;;;;;;;;-1:-1:-1;;;;;3901:31:84;;;;;;;;;;;;;;;3732:207::o;9323:164:265:-;9417:63;9454:13;9469:10;9417:36;:63::i;:::-;9323:164;:::o;12350:270::-;12529:18;;:84;;-1:-1:-1;;;12529:84:265;;-1:-1:-1;;;;;20714:15:486;;;12529:84:265;;;20696:34:486;20746:18;;;20739:34;;;20809:15;;;20789:18;;;20782:43;20841:18;;;20834:34;;;12502:4:265;;12529:18;;:54;;20630:19:486;;12529:84:265;20411:463:486;2764:580:267;2903:4;2939:10;-1:-1:-1;;;;;2927:22:267;:8;-1:-1:-1;;;;;2927:22:267;;2923:415;;-1:-1:-1;2972:4:267;2965:11;;2923:415;-1:-1:-1;;;;;;3023:31:267;;;3007:13;3023:31;;;:19;:31;;;;;;;;;3112:21;;:14;:21;;;;;:31;;;;;;;;;;;:43;;;;;;;;;3176:93;;:151;;3169:158;;8191:171:265;8277:35;;8301:10;;8277:35;;;;;8342:10;8322:31;;;;:19;:31;;;;;:33;;;;;;:::i;:::-;;;;;;8191:171::o;1518:484:92:-;1684:12;;;1620:20;1684:12;;;;;;;;1586:22;;1795:4;-1:-1:-1;;;;;1783:24:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:34;;1822:9;1817:155;1837:15;;;1817:155;;;1886:75;1923:4;1943;;1948:1;1943:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1952;1930:30;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1886:28;:75::i;:::-;1873:7;1881:1;1873:10;;;;;;;;:::i;:::-;;;;;;;;;;:88;1854:3;;1817:155;;;;1981:14;1518:484;;;;:::o;9530:411:265:-;9646:76;9659:10;9671;9683:38;9646:12;:76::i;:::-;9641:212;;9772:10;9784;9802:38;9796:45;;9641:212;9862:18;;:72;;-1:-1:-1;;;9862:72:265;;-1:-1:-1;;;;;9862:18:265;;;;:45;;:72;;9908:10;;9920:13;;9862:72;;;:::i;4256:333::-;2362:4:84;3191:16;2362:4;3191:10;:16::i;:::-;-1:-1:-1;;;;;4368:33:265;::::1;4364:92;;4424:21;;-1:-1:-1::0;;;4424:21:265::1;;;;;;;;;;;4364:92;4492:18;::::0;4470:62:::1;::::0;-1:-1:-1;;;;;4470:62:265;;::::1;::::0;4492:18:::1;::::0;4470:62:::1;::::0;4492:18:::1;::::0;4470:62:::1;-1:-1:-1::0;4542:18:265::1;:40:::0;;-1:-1:-1;;;;;;4542:40:265::1;-1:-1:-1::0;;;;;4542:40:265;;;::::1;::::0;;;::::1;::::0;;4256:333::o;3765:343::-;4158:30:87;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:87;-1:-1:-1;;;4302:15:87;;;4301:16;;-1:-1:-1;;;;;4348:14:87;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:87;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:87;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:87;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:87;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:87;-1:-1:-1;;;5011:22:87;;;4977:67;3832:18:265::1;:16;:18::i;:::-;3860:22;:20;:22::i;:::-;3892:24;:22;:24::i;:::-;3927:38;2362:4:84;3958:6:265::0;3927:10:::1;:38::i;:::-;;3975:31;978:24:269;3999:6:265;3975:10;:31::i;:::-;;4016;921:24:269;4040:6:265;4016:10;:31::i;:::-;;4057:44;1048:37:269;4094:6:265;4057:10;:44::i;:::-;;5068:14:87::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:87;;;5140:14;;-1:-1:-1;29391:50:486;;5140:14:87;;29379:2:486;29364:18;5140:14:87;;;;;;;4092:1079;;;;;3765:343:265;:::o;9124:156::-;9214:59;9247:13;9262:10;9214:32;:59::i;6777:298::-;6914:19;;3191:16:84;6914:19:265;3191:10:84;:16::i;:::-;6961:57:265::1;::::0;-1:-1:-1;;;6961:57:265;;:23:::1;::::0;:39:::1;::::0;:57:::1;::::0;7001:16;;6961:57:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7033:35;::::0;6949:69;;-1:-1:-1;;;;;;7033:35:265;::::1;::::0;::::1;::::0;;;::::1;6777:298:::0;;;;:::o;5662:138:84:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;6194:544:265:-:0;6355:51;;3191:16:84;6355:51:265;3191:10:84;:16::i;:::-;6573:40:265::1;::::0;6477:190:::1;::::0;-1:-1:-1;;;6477:190:265;;-1:-1:-1;;;;;6573:40:265;;::::1;6477:190;::::0;::::1;31445:34:486::0;6438:10:265::1;31495:18:486::0;;;31488:43;;;31567:15;;;31547:18;;;31540:43;31619:15;;;31599:18;;;31592:43;6477:41:265::1;::::0;:82:::1;::::0;31379:19:486;;6477:190:265::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6682:49;::::0;6458:209;;-1:-1:-1;;;;;;6682:49:265;::::1;::::0;::::1;::::0;;;::::1;6412:326;6194:544:::0;;;;;:::o;1271:112:267:-;1328:5;1358:17;1328:5;1369;1358:10;:17::i;1590:241::-;1635:23;1693:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1681:29:267;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1681:29:267;;1670:40;;1725:9;1720:105;1744:8;:15;1740:1;:19;1720:105;;;1800:13;:7;1811:1;1800:10;:13::i;:::-;1780:8;1789:1;1780:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1780:34:267;;;:11;;;;;;;;;;;:34;1761:3;;1720:105;;5502:653:265;5803:12;;3191:16:84;5803:12:265;3191:10:84;:16::i;:::-;5919:18:265::1;::::0;5872:143:::1;::::0;-1:-1:-1;;;5872:143:265;;5843:10:::1;::::0;5872:20:::1;::::0;:33:::1;::::0;:143:::1;::::0;-1:-1:-1;;;;;5919:18:265;;::::1;::::0;5843:10;;5946:15;;5963:16;;5981:12;;5995:10;;5872:143:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5863:152:::0;-1:-1:-1;6076:28:265::1;:7;5863:152:::0;6076:11:::1;:28::i;:::-;-1:-1:-1::0;6119:29:265::1;::::0;-1:-1:-1;;;;;6119:29:265;::::1;::::0;::::1;::::0;;;::::1;5817:338;5502:653:::0;;;;;;;:::o;4148:103:84:-;4214:30;4225:4;966:10:91;4214::84;:30::i;10530:115:141:-;10593:7;10619:19;10627:3;5202:18;;5120:107;7270:387:84;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:84;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:84;;;;;;;;;:38;;-1:-1:-1;;7475:38:84;7509:4;7475:38;;;7559:12;966:10:91;;887:96;7559:12:84;-1:-1:-1;;;;;7532:40:84;7550:7;-1:-1:-1;;;;;7532:40:84;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7894:388;7972:4;-1:-1:-1;;;;;;;;;;;8061:22:84;8069:4;8075:7;8061;:22::i;:::-;8057:219;;;8133:5;8099:14;;;;;;;;;;;-1:-1:-1;;;;;8099:31:84;;;;;;;;;;:39;;-1:-1:-1;;8099:39:84;;;8157:40;966:10:91;;8099:14:84;;8157:40;;8133:5;8157:40;8218:4;8211:11;;;;;4578:312:88;4658:4;-1:-1:-1;;;;;4667:6:88;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:88;:32;-1:-1:-1;;;;;;;;;;;1519:53:111;-1:-1:-1;;;;;1519:53:111;;1441:138;4728:32:88;-1:-1:-1;;;;;4728:42:88;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:88;;;;;;;;;;;4633:251;4578:312::o;4114:103:265:-;2362:4:84;3191:16;2362:4;3191:10;:16::i;6032:538:88:-;6149:17;-1:-1:-1;;;;;6131:50:88;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:88;;;;;;;;-1:-1:-1;;6131:52:88;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:88;;-1:-1:-1;;;;;1230:32:486;;6493:60:88;;;1212:51:486;1185:18;;6493:60:88;1066:203:486;6127:437:88;-1:-1:-1;;;;;;;;;;;6225:40:88;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:88;;;;;2038:25:486;;;2011:18;;6292:34:88;1892:177:486;6221:120:88;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:88;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:88;;;;;;;;;;;2500:151:125;2575:12;2606:38;2628:6;2636:4;2642:1;2606:21;:38::i;10284:165:141:-;-1:-1:-1;;;;;10417:23:141;;10364:4;5006:21;;;:14;;;:21;;;;;;:26;;10387:55;4910:129;10987:156;11061:7;11111:22;11115:3;11127:5;11111:3;:22::i;766:142:294:-;842:7;868:33;893:1;896;899;868:24;:33::i;1308:632:134:-;1364:13;1413:14;1430:17;1441:5;1430:10;:17::i;:::-;1450:1;1430:21;1413:38;;1465:20;1499:6;-1:-1:-1;;;;;1488:18:134;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1488:18:134;-1:-1:-1;1465:41:134;-1:-1:-1;1595:28:134;;;1611:2;1595:28;1650:247;-1:-1:-1;;1681:5:134;-1:-1:-1;;;1780:2:134;1769:14;;1764:32;1681:5;1751:46;1841:2;1832:11;;;-1:-1:-1;1861:21:134;1650:247;1861:21;-1:-1:-1;1917:6:134;1308:632;-1:-1:-1;;;1308:632:134:o;3433:174:273:-;3521:4;3586:6;3578:15;;;;;;;;:::i;:::-;3573:1;:20;;3555:13;3545:49;3544:56;;;3433:174;-1:-1:-1;;;3433:174:273:o;7505:643:265:-;-1:-1:-1;;;;;7651:22:265;;7647:81;;7696:21;;-1:-1:-1;;;7696:21:265;;;;;;;;;;;7647:81;7776:36;7798:13;7776:21;:36::i;:::-;7771:144;;7835:69;;-1:-1:-1;;;7835:69:265;;;;;2038:25:486;;;2011:18;;7835:69:265;1892:177:486;7771:144:265;-1:-1:-1;;;;;7941:31:265;;7925:13;7941:31;;;:19;:31;;;;;;8050:13;8016:8;-1:-1:-1;;;;;7987:85:265;8004:10;-1:-1:-1;;;;;7987:85:265;;8066:5;7987:85;;;;2038:25:486;;2026:2;2011:18;;1892:177;7987:85:265;;;;;;;;8082:21;;;;:14;:21;;;;;;;;-1:-1:-1;;;;;8082:31:265;;;;;;;;;;:43;;;;;;;;;;;;;:59;7505:643::o;3916:253:125:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:125;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;9071:205:87:-;9129:30;;3147:66;9186:27;8819:122;1218:61:92;6929:20:87;:18;:20::i;9332:150:141:-;9402:4;9425:50;9430:3;-1:-1:-1;;;;;9450:23:141;;9425:4;:50::i;4381:197:84:-;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:84;;-1:-1:-1;;;;;36524:32:486;;4514:47:84;;;36506:51:486;36573:18;;;36566:34;;;36479:18;;4514:47:84;36332:274:486;2264:344:111;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:111;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;2975:407:125:-;3074:12;3126:5;3102:21;:29;3098:123;;;3154:56;;-1:-1:-1;;;3154:56:125;;3181:21;3154:56;;;36785:25:486;36826:18;;;36819:34;;;36758:18;;3154:56:125;36611:248:486;3098:123:125;3231:12;3245:23;3272:6;-1:-1:-1;;;;;3272:11:125;3291:5;3298:4;3272:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3230:73;;;;3320:55;3347:6;3355:7;3364:10;3320:26;:55::i;:::-;3313:62;2975:407;-1:-1:-1;;;;;;2975:407:125:o;5569:118:141:-;5636:7;5662:3;:11;;5674:5;5662:18;;;;;;;;:::i;:::-;;;;;;;;;5655:25;;5569:118;;;;:::o;24705:466:175:-;24777:9;25000:1;24996;24992:6;24988:14;24985:1;24982:21;24979:1;24975:29;24968:37;24965:1;24961:45;24951:169;;25039:10;25033:4;25026:24;25101:4;25095;25088:18;24951:169;-1:-1:-1;25142:9:175;;25138:17;;24705:466::o;29154:916:137:-;29207:7;;-1:-1:-1;;;29282:17:137;;29278:103;;-1:-1:-1;;;29319:17:137;;;-1:-1:-1;29364:2:137;29354:12;29278:103;29407:8;29398:5;:17;29394:103;;29444:8;29435:17;;;-1:-1:-1;29480:2:137;29470:12;29394:103;29523:8;29514:5;:17;29510:103;;29560:8;29551:17;;;-1:-1:-1;29596:2:137;29586:12;29510:103;29639:7;29630:5;:16;29626:100;;29675:7;29666:16;;;-1:-1:-1;29710:1:137;29700:11;29626:100;29752:7;29743:5;:16;29739:100;;29788:7;29779:16;;;-1:-1:-1;29823:1:137;29813:11;29739:100;29865:7;29856:5;:16;29852:100;;29901:7;29892:16;;;-1:-1:-1;29936:1:137;29926:11;29852:100;29978:7;29969:5;:16;29965:66;;30015:1;30005:11;30057:6;29154:916;-1:-1:-1;;29154:916:137:o;2892:220:273:-;2961:4;;3002:44;3045:1;3003:38;3002:44;:::i;:::-;3063:42;;;;;;-1:-1:-1;;2892:220:273:o;4437:582:125:-;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;:::-;4605:408;;;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:125;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:125;;-1:-1:-1;;;;;1230:32:486;;4933:24:125;;;1212:51:486;1185:18;;4933:24:125;1066:203:486;4853:119:125;-1:-1:-1;4992:10:125;4985:17;;7082:141:87;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:87;;;;;;;;;;;2336:406:141;2399:4;5006:21;;;:14;;;:21;;;;;;2415:321;;-1:-1:-1;2457:23:141;;;;;;;;:11;:23;;;;;;;;;;;;;2639:18;;2615:21;;;:14;;;:21;;;;;;:42;;;;2671:11;;2415:321;-1:-1:-1;2720:5:141;2713:12;;1671:281:111;1748:17;-1:-1:-1;;;;;1748:29:111;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:111;;-1:-1:-1;;;;;1230:32:486;;1805:47:111;;;1212:51:486;1185:18;;1805:47:111;1066:203:486;1744:119:111;-1:-1:-1;;;;;;;;;;;1872:73:111;;-1:-1:-1;;;;;;1872:73:111;-1:-1:-1;;;;;1872:73:111;;;;;;;;;;1671:281::o;6113:122::-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:111;;;;;;;;;;;5559:487:125;5690:17;;:21;5686:354;;5887:10;5881:17;5943:15;5930:10;5926:2;5922:19;5915:44;5686:354;6010:19;;-1:-1:-1;;;6010:19:125;;;;;;;;;;;8485:120:87;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:87;;;;;;-1:-1:-1;8485:120:87:o;14:152:486:-;-1:-1:-1;;;;;110:31:486;;100:42;;90:70;;156:1;153;146:12;171:298;260:6;313:2;301:9;292:7;288:23;284:32;281:52;;;329:1;326;319:12;281:52;368:9;355:23;387:52;433:5;387:52;:::i;474:286::-;532:6;585:2;573:9;564:7;560:23;556:32;553:52;;;601:1;598;591:12;553:52;627:23;;-1:-1:-1;;;;;;679:32:486;;669:43;;659:71;;726:1;723;716:12;1274:155;1342:20;;1371:52;1342:20;1371:52;:::i;:::-;1274:155;;;:::o;1707:180::-;1766:6;1819:2;1807:9;1798:7;1794:23;1790:32;1787:52;;;1835:1;1832;1825:12;1787:52;-1:-1:-1;1858:23:486;;1707:180;-1:-1:-1;1707:180:486:o;2256:336::-;2324:6;2332;2385:2;2373:9;2364:7;2360:23;2356:32;2353:52;;;2401:1;2398;2391:12;2353:52;2437:9;2424:23;2414:33;;2497:2;2486:9;2482:18;2469:32;2510:52;2556:5;2510:52;:::i;:::-;2581:5;2571:15;;;2256:336;;;;;:::o;2835:746::-;2946:6;2954;2962;2970;2978;3031:3;3019:9;3010:7;3006:23;3002:33;2999:53;;;3048:1;3045;3038:12;2999:53;3087:9;3074:23;3106:52;3152:5;3106:52;:::i;:::-;3177:5;-1:-1:-1;3229:2:486;3214:18;;3201:32;;-1:-1:-1;3285:2:486;3270:18;;3257:32;3298:54;3257:32;3298:54;:::i;:::-;3371:7;-1:-1:-1;3430:2:486;3415:18;;3402:32;3443:54;3402:32;3443:54;:::i;:::-;2835:746;;;;-1:-1:-1;2835:746:486;;3570:3;3555:19;3542:33;;2835:746;-1:-1:-1;;2835:746:486:o;3586:127::-;3647:10;3642:3;3638:20;3635:1;3628:31;3678:4;3675:1;3668:15;3702:4;3699:1;3692:15;3718:253;3790:2;3784:9;3832:4;3820:17;;-1:-1:-1;;;;;3852:34:486;;3888:22;;;3849:62;3846:88;;;3914:18;;:::i;:::-;3950:2;3943:22;3718:253;:::o;3976:252::-;4048:2;4042:9;4090:3;4078:16;;-1:-1:-1;;;;;4109:34:486;;4145:22;;;4106:62;4103:88;;;4171:18;;:::i;4233:275::-;4304:2;4298:9;4369:2;4350:13;;-1:-1:-1;;4346:27:486;4334:40;;-1:-1:-1;;;;;4389:34:486;;4425:22;;;4386:62;4383:88;;;4451:18;;:::i;:::-;4487:2;4480:22;4233:275;;-1:-1:-1;4233:275:486:o;4513:186::-;4561:4;-1:-1:-1;;;;;4586:6:486;4583:30;4580:56;;;4616:18;;:::i;:::-;-1:-1:-1;4682:2:486;4661:15;-1:-1:-1;;4657:29:486;4688:4;4653:40;;4513:186::o;4704:827::-;4781:6;4789;4842:2;4830:9;4821:7;4817:23;4813:32;4810:52;;;4858:1;4855;4848:12;4810:52;4897:9;4884:23;4916:52;4962:5;4916:52;:::i;:::-;4987:5;-1:-1:-1;5043:2:486;5028:18;;5015:32;-1:-1:-1;;;;;5059:30:486;;5056:50;;;5102:1;5099;5092:12;5056:50;5125:22;;5178:4;5170:13;;5166:27;-1:-1:-1;5156:55:486;;5207:1;5204;5197:12;5156:55;5243:2;5230:16;5268:48;5284:31;5312:2;5284:31;:::i;:::-;5268:48;:::i;:::-;5339:2;5332:5;5325:17;5379:7;5374:2;5369;5365;5361:11;5357:20;5354:33;5351:53;;;5400:1;5397;5390:12;5351:53;5455:2;5450;5446;5442:11;5437:2;5430:5;5426:14;5413:45;5499:1;5494:2;5489;5482:5;5478:14;5474:23;5467:34;5520:5;5510:15;;;;;4704:827;;;;;:::o;5536:250::-;5621:1;5631:113;5645:6;5642:1;5639:13;5631:113;;;5721:11;;;5715:18;5702:11;;;5695:39;5667:2;5660:10;5631:113;;;-1:-1:-1;;5778:1:486;5760:16;;5753:27;5536:250::o;5791:271::-;5833:3;5871:5;5865:12;5898:6;5893:3;5886:19;5914:76;5983:6;5976:4;5971:3;5967:14;5960:4;5953:5;5949:16;5914:76;:::i;:::-;6044:2;6023:15;-1:-1:-1;;6019:29:486;6010:39;;;;6051:4;6006:50;;5791:271;-1:-1:-1;;5791:271:486:o;6067:220::-;6216:2;6205:9;6198:21;6179:4;6236:45;6277:2;6266:9;6262:18;6254:6;6236:45;:::i;6292:763::-;6387:6;6395;6403;6456:2;6444:9;6435:7;6431:23;6427:32;6424:52;;;6472:1;6469;6462:12;6424:52;6511:9;6498:23;6530:52;6576:5;6530:52;:::i;:::-;6601:5;-1:-1:-1;6657:2:486;6642:18;;6629:32;-1:-1:-1;;;;;6710:14:486;;;6707:34;;;6737:1;6734;6727:12;6707:34;6775:6;6764:9;6760:22;6750:32;;6820:7;6813:4;6809:2;6805:13;6801:27;6791:55;;6842:1;6839;6832:12;6791:55;6882:2;6869:16;6908:2;6900:6;6897:14;6894:34;;;6924:1;6921;6914:12;6894:34;6969:7;6964:2;6955:6;6951:2;6947:15;6943:24;6940:37;6937:57;;;6990:1;6987;6980:12;6937:57;7021:2;7017;7013:11;7003:21;;7043:6;7033:16;;;;;6292:763;;;;;:::o;7283:583::-;7385:6;7393;7401;7409;7462:3;7450:9;7441:7;7437:23;7433:33;7430:53;;;7479:1;7476;7469:12;7430:53;7518:9;7505:23;7537:52;7583:5;7537:52;:::i;:::-;7608:5;-1:-1:-1;7660:2:486;7645:18;;7632:32;;-1:-1:-1;7716:2:486;7701:18;;7688:32;7729:54;7688:32;7729:54;:::i;:::-;7283:583;;;;-1:-1:-1;7802:7:486;;7856:2;7841:18;7828:32;;-1:-1:-1;;7283:583:486:o;7871:492::-;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8026:22;;:::i;:::-;8017:31;;8084:9;8071:23;8064:5;8057:38;8155:2;8144:9;8140:18;8127:32;8122:2;8115:5;8111:14;8104:56;8220:2;8209:9;8205:18;8192:32;8187:2;8180:5;8176:14;8169:56;8285:2;8274:9;8270:18;8257:32;8252:2;8245:5;8241:14;8234:56;8351:3;8340:9;8336:19;8323:33;8317:3;8310:5;8306:15;8299:58;7871:492;;;;:::o;8368:468::-;8525:6;8533;8541;8594:3;8582:9;8573:7;8569:23;8565:33;8562:53;;;8611:1;8608;8601:12;8562:53;8647:9;8634:23;8624:33;;8676:67;8735:7;8730:2;8719:9;8715:18;8676:67;:::i;:::-;8666:77;;8762:68;8822:7;8816:3;8805:9;8801:19;8762:68;:::i;:::-;8752:78;;8368:468;;;;;:::o;8841:712::-;8895:5;8948:3;8941:4;8933:6;8929:17;8925:27;8915:55;;8966:1;8963;8956:12;8915:55;9002:6;8989:20;9028:4;-1:-1:-1;;;;;9047:2:486;9044:26;9041:52;;;9073:18;;:::i;:::-;9119:2;9116:1;9112:10;9142:28;9166:2;9162;9158:11;9142:28;:::i;:::-;9204:15;;;9274;;;9270:24;;;9235:12;;;;9306:15;;;9303:35;;;9334:1;9331;9324:12;9303:35;9370:2;9362:6;9358:15;9347:26;;9382:142;9398:6;9393:3;9390:15;9382:142;;;9464:17;;9452:30;;9415:12;;;;9502;;;;9382:142;;;9542:5;8841:712;-1:-1:-1;;;;;;;8841:712:486:o;9558:504::-;9651:6;9659;9712:2;9700:9;9691:7;9687:23;9683:32;9680:52;;;9728:1;9725;9718:12;9680:52;9768:9;9755:23;-1:-1:-1;;;;;9793:6:486;9790:30;9787:50;;;9833:1;9830;9823:12;9787:50;9856:61;9909:7;9900:6;9889:9;9885:22;9856:61;:::i;:::-;9846:71;;;9967:2;9956:9;9952:18;9939:32;9980:52;10026:5;9980:52;:::i;10067:803::-;10229:4;10258:2;10298;10287:9;10283:18;10328:2;10317:9;10310:21;10351:6;10386;10380:13;10417:6;10409;10402:22;10455:2;10444:9;10440:18;10433:25;;10517:2;10507:6;10504:1;10500:14;10489:9;10485:30;10481:39;10467:53;;10555:2;10547:6;10543:15;10576:1;10586:255;10600:6;10597:1;10594:13;10586:255;;;10693:2;10689:7;10677:9;10669:6;10665:22;10661:36;10656:3;10649:49;10721:40;10754:6;10745;10739:13;10721:40;:::i;:::-;10711:50;-1:-1:-1;10819:12:486;;;;10784:15;;;;10622:1;10615:9;10586:255;;;-1:-1:-1;10858:6:486;;10067:803;-1:-1:-1;;;;;;;10067:803:486:o;10875:498::-;10952:6;10960;10968;11021:2;11009:9;11000:7;10996:23;10992:32;10989:52;;;11037:1;11034;11027:12;10989:52;11073:9;11060:23;11050:33;;11133:2;11122:9;11118:18;11105:32;11146:52;11192:5;11146:52;:::i;:::-;11217:5;-1:-1:-1;11274:2:486;11259:18;;11246:32;11287:54;11246:32;11287:54;:::i;:::-;11360:7;11350:17;;;10875:498;;;;;:::o;11596:594::-;11686:6;11694;11702;11755:2;11743:9;11734:7;11730:23;11726:32;11723:52;;;11771:1;11768;11761:12;11723:52;11810:9;11797:23;11829:52;11875:5;11829:52;:::i;:::-;11900:5;-1:-1:-1;11957:2:486;11942:18;;11929:32;11970:54;11929:32;11970:54;:::i;:::-;12043:7;-1:-1:-1;12102:2:486;12087:18;;12074:32;12137:2;12125:15;;12115:43;;12154:1;12151;12144:12;12195:625;12361:6;12369;12377;12385;12438:3;12426:9;12417:7;12413:23;12409:33;12406:53;;;12455:1;12452;12445:12;12406:53;12491:9;12478:23;12468:33;;12520:67;12579:7;12574:2;12563:9;12559:18;12520:67;:::i;:::-;12510:77;;12606:68;12666:7;12660:3;12649:9;12645:19;12606:68;:::i;:::-;12596:78;;12724:3;12713:9;12709:19;12696:33;12738:52;12784:5;12738:52;:::i;:::-;12195:625;;;;-1:-1:-1;12195:625:486;;-1:-1:-1;;12195:625:486:o;12825:372::-;12929:6;12937;12990:2;12978:9;12969:7;12965:23;12961:32;12958:52;;;13006:1;13003;12996:12;12958:52;13045:9;13032:23;13064:52;13110:5;13064:52;:::i;:::-;13135:5;13187:2;13172:18;;;;13159:32;;-1:-1:-1;;;12825:372:486:o;13202:348::-;13286:6;13339:2;13327:9;13318:7;13314:23;13310:32;13307:52;;;13355:1;13352;13345:12;13307:52;13395:9;13382:23;-1:-1:-1;;;;;13420:6:486;13417:30;13414:50;;;13460:1;13457;13450:12;13414:50;13483:61;13536:7;13527:6;13516:9;13512:22;13483:61;:::i;13555:534::-;13668:6;13676;13684;13737:2;13725:9;13716:7;13712:23;13708:32;13705:52;;;13753:1;13750;13743:12;13705:52;13792:9;13779:23;13811:52;13857:5;13811:52;:::i;:::-;13882:5;-1:-1:-1;13939:2:486;13924:18;;13911:32;13952:54;13911:32;13952:54;:::i;:::-;13555:534;;14025:7;;-1:-1:-1;;;14079:2:486;14064:18;;;;14051:32;;13555:534::o;14094:626::-;14191:6;14199;14252:2;14240:9;14231:7;14227:23;14223:32;14220:52;;;14268:1;14265;14258:12;14220:52;14308:9;14295:23;-1:-1:-1;;;;;14378:2:486;14370:6;14367:14;14364:34;;;14394:1;14391;14384:12;14364:34;14432:6;14421:9;14417:22;14407:32;;14477:7;14470:4;14466:2;14462:13;14458:27;14448:55;;14499:1;14496;14489:12;14448:55;14539:2;14526:16;14565:2;14557:6;14554:14;14551:34;;;14581:1;14578;14571:12;14551:34;14634:7;14629:2;14619:6;14616:1;14612:14;14608:2;14604:23;14600:32;14597:45;14594:65;;;14655:1;14652;14645:12;14594:65;14686:2;14678:11;;;;;14708:6;;-1:-1:-1;14094:626:486;;-1:-1:-1;;;;14094:626:486:o;14725:801::-;14885:4;14914:2;14954;14943:9;14939:18;14984:2;14973:9;14966:21;15007:6;15042;15036:13;15073:6;15065;15058:22;15111:2;15100:9;15096:18;15089:25;;15173:2;15163:6;15160:1;15156:14;15145:9;15141:30;15137:39;15123:53;;15211:2;15203:6;15199:15;15232:1;15242:255;15256:6;15253:1;15250:13;15242:255;;;15349:2;15345:7;15333:9;15325:6;15321:22;15317:36;15312:3;15305:49;15377:40;15410:6;15401;15395:13;15377:40;:::i;:::-;15367:50;-1:-1:-1;15475:12:486;;;;15440:15;;;;15278:1;15271:9;15242:255;;15531:163;15598:20;;15658:10;15647:22;;15637:33;;15627:61;;15684:1;15681;15674:12;15699:972;15793:6;15846:3;15834:9;15825:7;15821:23;15817:33;15814:53;;;15863:1;15860;15853:12;15814:53;15889:22;;:::i;:::-;15934:29;15953:9;15934:29;:::i;:::-;15927:5;15920:44;15996:37;16029:2;16018:9;16014:18;15996:37;:::i;:::-;15991:2;15984:5;15980:14;15973:61;16066:37;16099:2;16088:9;16084:18;16066:37;:::i;:::-;16061:2;16054:5;16050:14;16043:61;16136:38;16170:2;16159:9;16155:18;16136:38;:::i;:::-;16131:2;16124:5;16120:14;16113:62;16208:39;16242:3;16231:9;16227:19;16208:39;:::i;:::-;16202:3;16195:5;16191:15;16184:64;16281:39;16315:3;16304:9;16300:19;16281:39;:::i;:::-;16275:3;16268:5;16264:15;16257:64;16354:39;16388:3;16377:9;16373:19;16354:39;:::i;:::-;16348:3;16341:5;16337:15;16330:64;16455:3;16444:9;16440:19;16427:33;16421:3;16414:5;16410:15;16403:58;16480:3;16543:2;16532:9;16528:18;16515:32;16510:2;16503:5;16499:14;16492:56;;16567:3;16602:38;16636:2;16625:9;16621:18;16602:38;:::i;:::-;16586:14;;;16579:62;16590:5;15699:972;-1:-1:-1;;;15699:972:486:o;16904:468::-;17010:6;17018;17071:2;17059:9;17050:7;17046:23;17042:32;17039:52;;;17087:1;17084;17077:12;17039:52;17126:9;17113:23;17145:52;17191:5;17145:52;:::i;:::-;17216:5;-1:-1:-1;17273:2:486;17258:18;;17245:32;17286:54;17245:32;17286:54;:::i;18039:674::-;18226:2;18278:21;;;18348:13;;18251:18;;;18370:22;;;18197:4;;18226:2;18449:15;;;;18423:2;18408:18;;;18197:4;18492:195;18506:6;18503:1;18500:13;18492:195;;;18571:13;;-1:-1:-1;;;;;18567:39:486;18555:52;;18662:15;;;;18627:12;;;;18603:1;18521:9;18492:195;;;-1:-1:-1;18704:3:486;;18039:674;-1:-1:-1;;;;;;18039:674:486:o;18718:174::-;18796:5;18841:3;18832:6;18827:3;18823:16;18819:26;18816:46;;;18858:1;18855;18848:12;18816:46;-1:-1:-1;18880:6:486;18718:174;-1:-1:-1;18718:174:486:o;18897:771::-;19164:6;19172;19180;19188;19232:9;19223:7;19219:23;19262:3;19258:2;19254:12;19251:32;;;19279:1;19276;19269:12;19251:32;19302:72;19366:7;19355:9;19302:72;:::i;:::-;19292:82;-1:-1:-1;19409:3:486;-1:-1:-1;;19390:17:486;;19386:27;19383:47;;;19426:1;19423;19416:12;19383:47;19464:3;19449:19;;;-1:-1:-1;19503:2:486;-1:-1:-1;;19484:17:486;;19480:26;19477:46;;;19519:1;19516;19509:12;19477:46;;19557:3;19546:9;19542:19;19532:29;;19580:82;19654:7;19648:3;19637:9;19633:19;19580:82;:::i;:::-;19570:92;;18897:771;;;;;;;:::o;20222:184::-;20292:6;20345:2;20333:9;20324:7;20320:23;20316:32;20313:52;;;20361:1;20358;20351:12;20313:52;-1:-1:-1;20384:16:486;;20222:184;-1:-1:-1;20222:184:486:o;20879:277::-;20946:6;20999:2;20987:9;20978:7;20974:23;20970:32;20967:52;;;21015:1;21012;21005:12;20967:52;21047:9;21041:16;21100:5;21093:13;21086:21;21079:5;21076:32;21066:60;;21122:1;21119;21112:12;21161:127;21222:10;21217:3;21213:20;21210:1;21203:31;21253:4;21250:1;21243:15;21277:4;21274:1;21267:15;21680:729;-1:-1:-1;;;;;21928:32:486;;21910:51;;21898:2;21980;21998:18;;;21991:30;;;22070:13;;21883:18;;;22092:22;;;21850:4;;22171:15;;;;21980:2;22145;22130:18;;;21850:4;22214:169;22228:6;22225:1;22222:13;22214:169;;;22289:13;;22277:26;;22358:15;;;;22323:12;;;;22250:1;22243:9;22214:169;;;-1:-1:-1;22400:3:486;;21680:729;-1:-1:-1;;;;;;;21680:729:486:o;22414:538::-;22530:6;22583:3;22571:9;22562:7;22558:23;22554:33;22551:53;;;22600:1;22597;22590:12;22551:53;22626:22;;:::i;:::-;22677:9;22671:16;22664:5;22657:31;22741:2;22730:9;22726:18;22720:25;22715:2;22708:5;22704:14;22697:49;22799:2;22788:9;22784:18;22778:25;22773:2;22766:5;22762:14;22755:49;22857:2;22846:9;22842:18;22836:25;22831:2;22824:5;22820:14;22813:49;22916:3;22905:9;22901:19;22895:26;22889:3;22882:5;22878:15;22871:51;22941:5;22931:15;;;22414:538;;;;:::o;22957:175::-;23052:13;;23074:52;23052:13;23074:52;:::i;23137:1176::-;23235:6;23266:3;23310:2;23298:9;23289:7;23285:23;23281:32;23278:52;;;23326:1;23323;23316:12;23278:52;23359:2;23353:9;23389:15;;;;-1:-1:-1;;;;;23419:34:486;;23455:22;;;23416:62;23413:88;;;23481:18;;:::i;:::-;23521:10;23517:2;23510:22;23562:9;23556:16;23548:6;23541:32;23627:2;23616:9;23612:18;23606:25;23601:2;23593:6;23589:15;23582:50;23675:2;23664:9;23660:18;23654:25;23641:38;;23688:52;23734:5;23688:52;:::i;:::-;23773:5;23768:2;23760:6;23756:15;23749:30;23812:65;23873:2;23862:9;23858:18;23812:65;:::i;:::-;23807:2;23799:6;23795:15;23788:90;23912:66;23973:3;23962:9;23958:19;23912:66;:::i;:::-;23906:3;23898:6;23894:16;23887:92;24013:66;24074:3;24063:9;24059:19;24013:66;:::i;:::-;24007:3;23999:6;23995:16;23988:92;24114:66;24175:3;24164:9;24160:19;24114:66;:::i;:::-;24108:3;24100:6;24096:16;24089:92;24215:66;24276:3;24265:9;24261:19;24215:66;:::i;:::-;24209:3;24197:16;;24190:92;24201:6;23137:1176;-1:-1:-1;;;;23137:1176:486:o;24318:648::-;24398:6;24451:2;24439:9;24430:7;24426:23;24422:32;24419:52;;;24467:1;24464;24457:12;24419:52;24500:9;24494:16;-1:-1:-1;;;;;24525:6:486;24522:30;24519:50;;;24565:1;24562;24555:12;24519:50;24588:22;;24641:4;24633:13;;24629:27;-1:-1:-1;24619:55:486;;24670:1;24667;24660:12;24619:55;24699:2;24693:9;24724:48;24740:31;24768:2;24740:31;:::i;24724:48::-;24795:2;24788:5;24781:17;24835:7;24830:2;24825;24821;24817:11;24813:20;24810:33;24807:53;;;24856:1;24853;24846:12;24807:53;24869:67;24933:2;24928;24921:5;24917:14;24912:2;24908;24904:11;24869:67;:::i;24971:1437::-;-1:-1:-1;;;25631:3:486;25624:22;25606:3;25675:6;25669:13;25691:74;25758:6;25754:1;25749:3;25745:11;25738:4;25730:6;25726:17;25691:74;:::i;:::-;25793:6;25788:3;25784:16;25774:26;;-1:-1:-1;;;25852:2:486;25848:1;25844:2;25840:10;25833:22;25886:6;25880:13;25902:76;25969:8;25964:2;25960;25956:11;25949:4;25941:6;25937:17;25902:76;:::i;:::-;26038:2;25997:17;;26030:11;;;26023:23;;;26071:13;;26093:76;26071:13;26155:2;26147:11;;26140:4;26128:17;;26093:76;:::i;:::-;26229:2;26188:17;;26221:11;;;26214:23;26262:13;;26284:76;26262:13;26346:2;26338:11;;26331:4;26319:17;;26284:76;:::i;:::-;26380:17;26399:2;26376:26;;24971:1437;-1:-1:-1;;;;;;24971:1437:486:o;26413:127::-;26474:10;26469:3;26465:20;26462:1;26455:31;26505:4;26502:1;26495:15;26529:4;26526:1;26519:15;26879:642;-1:-1:-1;;;;;27288:32:486;;27270:51;;27352:2;27337:18;;27330:34;;;27257:3;27242:19;;27373:66;27435:2;27420:18;;27412:6;26637:5;26631:12;26626:3;26619:25;26693:4;26686:5;26682:16;26676:23;26669:4;26664:3;26660:14;26653:47;26749:4;26742:5;26738:16;26732:23;26725:4;26720:3;26716:14;26709:47;26805:4;26798:5;26794:16;26788:23;26781:4;26776:3;26772:14;26765:47;26861:4;26854:5;26850:16;26844:23;26837:4;26832:3;26828:14;26821:47;;;26545:329;27373:66;26631:12;;27510:3;27495:19;;26619:25;26693:4;26682:16;;26676:23;26660:14;;;26653:47;26749:4;26738:16;;26732:23;26716:14;;;26709:47;26805:4;26794:16;;26788:23;26772:14;;;26765:47;26861:4;26850:16;;26844:23;26828:14;;;26821:47;27448:67;26545:329;27526:127;27587:10;27582:3;27578:20;27575:1;27568:31;27618:4;27615:1;27608:15;27642:4;27639:1;27632:15;27658:135;27697:3;27718:17;;;27715:43;;27738:18;;:::i;:::-;-1:-1:-1;27785:1:486;27774:13;;27658:135::o;27798:128::-;27865:9;;;27886:11;;;27883:37;;;27900:18;;:::i;28267:521::-;28344:4;28350:6;28410:11;28397:25;28504:2;28500:7;28489:8;28473:14;28469:29;28465:43;28445:18;28441:68;28431:96;;28523:1;28520;28513:12;28431:96;28550:33;;28602:20;;;-1:-1:-1;;;;;;28634:30:486;;28631:50;;;28677:1;28674;28667:12;28631:50;28710:4;28698:17;;-1:-1:-1;28741:14:486;28737:27;;;28727:38;;28724:58;;;28778:1;28775;28768:12;28724:58;28267:521;;;;;:::o;28793:440::-;29022:6;29014;29009:3;28996:33;28978:3;29057:6;29052:3;29048:16;29084:1;29080:2;29073:13;29115:6;29109:13;29131:65;29189:6;29185:2;29178:4;29170:6;29166:17;29131:65;:::i;:::-;29212:15;;28793:440;-1:-1:-1;;;;;28793:440:486:o;29551:1277::-;29795:13;;-1:-1:-1;;;;;1023:31:486;1011:44;;29763:3;29748:19;;29867:4;29859:6;29855:17;29849:24;29882:53;29929:4;29918:9;29914:20;29900:12;29528:10;29517:22;29505:35;;29452:94;29882:53;;29984:4;29976:6;29972:17;29966:24;29999:55;30048:4;30037:9;30033:20;30017:14;29528:10;29517:22;29505:35;;29452:94;29999:55;;30103:4;30095:6;30091:17;30085:24;30118:56;30168:4;30157:9;30153:20;30137:14;-1:-1:-1;;;;;1023:31:486;1011:44;;957:104;30118:56;;30223:4;30215:6;30211:17;30205:24;30238:56;30288:4;30277:9;30273:20;30257:14;-1:-1:-1;;;;;1023:31:486;1011:44;;957:104;30238:56;;30343:4;30335:6;30331:17;30325:24;30358:56;30408:4;30397:9;30393:20;30377:14;-1:-1:-1;;;;;1023:31:486;1011:44;;957:104;30358:56;;30463:4;30455:6;30451:17;30445:24;30478:56;30528:4;30517:9;30513:20;30497:14;-1:-1:-1;;;;;1023:31:486;1011:44;;957:104;30478:56;-1:-1:-1;30590:4:486;30578:17;;;30572:24;30550:20;;;30543:54;30616:6;30664:15;;;30658:22;30638:18;;;30631:50;30700:6;30743:15;;;30737:22;-1:-1:-1;;;;;1023:31:486;;30803:18;;;1011:44;30768:54;957:104;30833:292;30923:6;30976:2;30964:9;30955:7;30951:23;30947:32;30944:52;;;30992:1;30989;30982:12;30944:52;31024:9;31018:16;31043:52;31089:5;31043:52;:::i;32352:435::-;32465:5;32452:19;32480:54;32526:7;32480:54;:::i;:::-;-1:-1:-1;;;;;32555:33:486;32543:46;;32637:4;32626:16;;32613:30;-1:-1:-1;;;;;32662:32:486;;32713:15;;;32703:43;;32742:1;32739;32732:12;32703:43;32778:2;32771:4;32766:3;32762:14;32755:26;;;32352:435;;:::o;32792:1092::-;32903:5;32890:19;32918:54;32964:7;32918:54;:::i;:::-;-1:-1:-1;;;;;33031:16:486;;;33019:29;;33096:4;33085:16;;33072:30;;33111:54;33072:30;33111:54;:::i;:::-;33197:16;;;33190:4;33181:14;;33174:40;33262:4;33251:16;;33238:30;;33277:54;33238:30;33277:54;:::i;:::-;33363:16;;;33356:4;33347:14;;33340:40;33428:4;33417:16;;33404:30;;33443:54;33404:30;33443:54;:::i;:::-;33529:16;;;33522:4;33513:14;;33506:40;33594:4;33583:16;;33570:30;;33609:54;33570:30;33609:54;:::i;:::-;33695:16;;;33688:4;33679:14;;33672:40;33760:4;33749:16;;33736:30;;33775:54;33736:30;33775:54;:::i;:::-;33874:2;33865:7;33861:16;33854:4;33849:3;33845:14;33838:40;;;32792:1092;;:::o;33889:1532::-;34483:4;34525:3;34514:9;34510:19;34502:27;;34565:1;34561;34556:3;34552:11;34548:19;34606:2;34598:6;34594:15;34583:9;34576:34;34658:2;34650:6;34646:15;34641:2;34630:9;34626:18;34619:43;34711:6;34698:20;34693:2;34682:9;34678:18;34671:48;34780:2;34772:6;34768:15;34755:29;34750:2;34739:9;34735:18;34728:57;34847:2;34839:6;34835:15;34822:29;34816:3;34805:9;34801:19;34794:58;34914:2;34906:6;34902:15;34889:29;34883:3;34872:9;34868:19;34861:58;34981:3;34973:6;34969:16;34956:30;34950:3;34939:9;34935:19;34928:59;35034:3;35026:6;35022:16;35009:30;35048:52;35094:5;35048:52;:::i;:::-;35137:14;35131:3;35116:19;;35109:43;32069:19;;35238:3;35223:19;;32057:32;32145:4;32134:16;;32121:30;32105:14;;;32098:54;32208:4;32197:16;;32184:30;32168:14;;;32161:54;32271:4;32260:16;;32247:30;32231:14;;;32224:54;32334:4;32323:16;;32310:30;32294:14;;;32287:54;35252:78;35325:3;35314:9;35310:19;35302:6;35252:78;:::i;:::-;35339:76;35410:3;35399:9;35395:19;35387:6;35339:76;:::i;36040:287::-;36169:3;36207:6;36201:13;36223:66;36282:6;36277:3;36270:4;36262:6;36258:17;36223:66;:::i;:::-;36305:16;;;;;36040:287;-1:-1:-1;;36040:287:486:o", "linkReferences": { "src/factory/libraries/MarketFactoryLibrary.sol": { - "MarketFactoryLibrary": [{ "start": 8053, "length": 20 }] + "MarketFactoryLibrary": [{ "start": 6125, "length": 20 }] }, "src/factory/libraries/NonTransferrableRebasingTokenVaultLibrary.sol": { "NonTransferrableRebasingTokenVaultLibrary": [ - { "start": 7708, "length": 20 } + { "start": 5780, "length": 20 } ] }, "src/factory/libraries/PriceFeedFactoryLibrary.sol": { - "PriceFeedFactoryLibrary": [{ "start": 7448, "length": 20 }] + "PriceFeedFactoryLibrary": [{ "start": 5520, "length": 20 }] } }, "immutableReferences": { - "52969": [ - { "start": 8909, "length": 32 }, - { "start": 8950, "length": 32 }, - { "start": 9273, "length": 32 } + "53685": [ + { "start": 6634, "length": 32 }, + { "start": 6675, "length": 32 }, + { "start": 6998, "length": 32 } ] } }, @@ -1080,9 +1187,7 @@ "isMarket(address)": "6ec934da", "multicall(bytes[])": "ac9650d8", "nonTransferrableTokenVaultImplementation()": "1286a2dc", - "onERC721Received(address,address,uint256,bytes)": "150b7a02", "proxiableUUID()": "52d1902d", - "reinitialize(address,address[],address,address,address[])": "4481f4d1", "renounceRole(bytes32,address)": "36568abe", "revokeAllAuthorizations()": "a7b2b310", "revokeRole(bytes32,address)": "d547741f", @@ -1090,14 +1195,18 @@ "setCollectionsManager(address)": "01a6c872", "setNonTransferrableRebasingTokenVaultImplementation(address)": "1e4fcddb", "setSizeImplementation(address)": "b4cd6bd1", + "setUserCollectionCopyLimitOrderConfigs(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": "6ed41835", + "setUserCollectionCopyLimitOrderConfigsOnBehalfOf(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256),address)": "88d76520", "sizeImplementation()": "973cf867", "subscribeToCollections(uint256[])": "c8fb6247", + "subscribeToCollectionsOnBehalfOf(uint256[],address)": "b1ef804d", "supportsInterface(bytes4)": "01ffc9a7", "unsubscribeFromCollections(uint256[])": "9e42bfa3", + "unsubscribeFromCollectionsOnBehalfOf(uint256[],address)": "732218f9", "upgradeToAndCall(address,bytes)": "4f1ef286", "version()": "54fd4d50" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"}],\"name\":\"INVALID_ACTIONS_BITMAP\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"INVALID_MARKET\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldCollectionsManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newCollectionsManager\",\"type\":\"address\"}],\"name\":\"CollectionsManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrowTokenVault\",\"type\":\"address\"}],\"name\":\"CreateBorrowTokenVault\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"CreateMarket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"CreatePriceFeed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldNonTransferrableRebasingTokenVaultImplementation\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newNonTransferrableRebasingTokenVaultImplementation\",\"type\":\"address\"}],\"name\":\"NonTransferrableRebasingTokenVaultImplementationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RevokeAllAuthorizations\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"SetAuthorization\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSizeImplementation\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSizeImplementation\",\"type\":\"address\"}],\"name\":\"SizeImplementationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"authorizationNonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"authorizations\",\"outputs\":[{\"internalType\":\"ActionsBitmap\",\"name\":\"authorizedActionsBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"callMarket\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionsManager\",\"outputs\":[{\"internalType\":\"contract ICollectionsManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPool\",\"name\":\"variablePool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"underlyingBorrowToken\",\"type\":\"address\"}],\"name\":\"createBorrowTokenVault\",\"outputs\":[{\"internalType\":\"contract NonTransferrableRebasingTokenVault\",\"name\":\"borrowTokenVault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"swapFeeAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationRewardPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"overdueCollateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"internalType\":\"struct InitializeFeeConfigParams\",\"name\":\"feeConfigParams\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"crOpening\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crLiquidation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"internalType\":\"struct InitializeRiskConfigParams\",\"name\":\"riskConfigParams\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"variablePoolBorrowRateStaleRateInterval\",\"type\":\"uint64\"}],\"internalType\":\"struct InitializeOracleParams\",\"name\":\"oracleParams\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingCollateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingBorrowToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variablePool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrowTokenVault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sizeFactory\",\"type\":\"address\"}],\"internalType\":\"struct InitializeDataParams\",\"name\":\"dataParams\",\"type\":\"tuple\"}],\"name\":\"createMarket\",\"outputs\":[{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"uniswapV3Pool\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"twapWindow\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"averageBlockTime\",\"type\":\"uint32\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"quoteToken\",\"type\":\"address\"},{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"baseAggregator\",\"type\":\"address\"},{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"quoteAggregator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStalePriceInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteStalePriceInterval\",\"type\":\"uint256\"},{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"sequencerUptimeFeed\",\"type\":\"address\"}],\"internalType\":\"struct PriceFeedParams\",\"name\":\"_priceFeedParams\",\"type\":\"tuple\"}],\"name\":\"createPriceFeed\",\"outputs\":[{\"internalType\":\"contract PriceFeed\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getBorrowOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getLoanOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getMarket\",\"outputs\":[{\"internalType\":\"contract ISize\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMarketDescriptions\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"descriptions\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMarkets\",\"outputs\":[{\"internalType\":\"contract ISize[]\",\"name\":\"_markets\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMarketsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"enum Action\",\"name\":\"action\",\"type\":\"uint8\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"ActionsBitmap\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"}],\"name\":\"isAuthorizedAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"isBorrowAPRLowerThanLoanOfferAPRs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanAPR\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"isLoanAPRGreaterThanBorrowOfferAPRs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"candidate\",\"type\":\"address\"}],\"name\":\"isMarket\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonTransferrableTokenVaultImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ICollectionsManager\",\"name\":\"_collectionsManager\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_users\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"_curator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rateProvider\",\"type\":\"address\"},{\"internalType\":\"contract ISize[]\",\"name\":\"_collectionMarkets\",\"type\":\"address[]\"}],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revokeAllAuthorizations\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"ActionsBitmap\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"}],\"name\":\"setAuthorization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ICollectionsManager\",\"name\":\"_collectionsManager\",\"type\":\"address\"}],\"name\":\"setCollectionsManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nonTransferrableTokenVaultImplementation\",\"type\":\"address\"}],\"name\":\"setNonTransferrableRebasingTokenVaultImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sizeImplementation\",\"type\":\"address\"}],\"name\":\"setSizeImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sizeImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"name\":\"subscribeToCollections\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"name\":\"unsubscribeFromCollections\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Size (https://size.credit/)\",\"custom:security-contact\":\"security@size.credit\",\"details\":\"Expects `AccessControlUpgradeable` to have a single DEFAULT_ADMIN_ROLE role address set.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"callMarket(address,bytes)\":{\"details\":\"Anybody can do arbitrary Size calls with this function, so users MUST revoke authorizations at the end of the transaction. Since this function executes arbitrary calls on Size markets, it should not have any trust assumptions on the ACL of factory-executed calls.\",\"params\":{\"data\":\"The data to call the market with\",\"market\":\"The market to call\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createBorrowTokenVault(address,address)\":{\"details\":\"The contract owner is set as the owner of the borrow token vault The borrow token vault needs to have adapters set after initialization\"},\"createMarket((uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256),(address,uint64),(address,address,address,address,address,address))\":{\"details\":\"The contract owner is set as the owner of the market\"},\"getBorrowOfferAPR(address,uint256,address,address,uint256)\":{\"details\":\"Since v1.8, this function is moved to the SizeFactory contract as it contains the link to the CollectionsManager, where collections provide APRs for different markets through rate providers\",\"params\":{\"collectionId\":\"The collection id\",\"market\":\"The market\",\"rateProvider\":\"The rate provider\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getLoanOfferAPR(address,uint256,address,address,uint256)\":{\"details\":\"Since v1.8, this function is moved to the SizeFactory contract as it contains the link to the CollectionsManager, where collections provide APRs for different markets through rate providers\",\"params\":{\"collectionId\":\"The collection id\",\"market\":\"The market\",\"rateProvider\":\"The rate provider\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getMarket(uint256)\":{\"params\":{\"index\":\"The index of the market\"},\"returns\":{\"_0\":\"market The market\"}},\"getMarketDescriptions()\":{\"returns\":{\"descriptions\":\"The market descriptions\"}},\"getMarkets()\":{\"returns\":{\"_markets\":\"markets The markets\"}},\"getMarketsCount()\":{\"returns\":{\"_0\":\"marketsCount The number of markets\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isAuthorized(address,address,uint8)\":{\"params\":{\"action\":\"The action\",\"onBehalfOf\":\"The account on behalf of which the action is authorized\",\"operator\":\"The operator account\"},\"returns\":{\"_0\":\"The authorization status\"}},\"isAuthorizedAll(address,address,uint256)\":{\"params\":{\"actionsBitmap\":\"The actions bitmap\",\"onBehalfOf\":\"The account on behalf of which the action is authorized\",\"operator\":\"The operator to check\"},\"returns\":{\"_0\":\"authorized True if the address is authorized for all actions\"}},\"isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)\":{\"params\":{\"borrowAPR\":\"The borrow APR\",\"market\":\"The market\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"isLower True if the borrow APR is lower than the loan offer APRs, false otherwise\"}},\"isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)\":{\"params\":{\"loanAPR\":\"The loan APR\",\"market\":\"The market\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"isGreater True if the loan APR is greater than the borrow offer APRs, false otherwise\"}},\"isMarket(address)\":{\"params\":{\"candidate\":\"The candidate to check\"},\"returns\":{\"_0\":\"True if the candidate is a registered market\"}},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize(address,address[],address,address,address[])\":{\"details\":\"Before v1.8, users could copy rate providers directly through `copyLimitOrders`. In v1.8, this method was deprecated in favor of collections. The `reinitialize` function serves as a migration path for users who are following the only off-chain collection currently offered by Size. On mainnet, there are no off-chain collections. On Base, there is only one off-chain collection. Although users could theoretically DoS/grief the reinitialization process by sybil copying the rate provider with multiple accounts, these addresses are filtered on the backend by liquidity, so this is not a concern.\",\"params\":{\"_collectionMarkets\":\"The markets for the collection\",\"_collectionsManager\":\"The collections manager contract\",\"_curator\":\"The curator that will receive the collection\",\"_rateProvider\":\"The rate provider\",\"_users\":\"The users to reinitialize the factory for\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setAuthorization(address,uint256)\":{\"details\":\"Actions bitmap are encoded a uint256 value because all external actions can fit in a uint256 To construct the actionsBitmap, the `Authorization.getActionsBitmap` functions can be used Not all actions require authorization (for example, `repay`, `liquidate`, etc.) In order to possible to authorize/revoke many actions at once, simply construct the actions bitmap using bitmap operations For example, to revoke an operator, simply set the authorization bitmap for that operator to `uint256(0)` To revoke all authorizations for all operators at once, use `revokeAllAuthorizations` Calling this function twice will set the actionsBitmap for the operator with the new value\",\"params\":{\"actionsBitmap\":\"The actions bitmap\",\"operator\":\"The operator account\"}},\"setNonTransferrableRebasingTokenVaultImplementation(address)\":{\"params\":{\"_nonTransferrableTokenVaultImplementation\":\"The new non-transferrable token vault implementation\"}},\"setSizeImplementation(address)\":{\"params\":{\"_sizeImplementation\":\"The new size implementation\"}},\"subscribeToCollections(uint256[])\":{\"params\":{\"collectionIds\":\"The collection ids to subscribe to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"unsubscribeFromCollections(uint256[])\":{\"params\":{\"collectionIds\":\"The collection ids to unsubscribe from\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"version()\":{\"returns\":{\"_0\":\"version The version of the size factory\"}}},\"title\":\"SizeFactory\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"callMarket(address,bytes)\":{\"notice\":\"Call a market with data. This can be used to batch operations on multiple markets.\"},\"createBorrowTokenVault(address,address)\":{\"notice\":\"Creates a new borrow token vault\"},\"createMarket((uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256),(address,uint64),(address,address,address,address,address,address))\":{\"notice\":\"Creates a new market\"},\"createPriceFeed((address,uint32,uint32,address,address,address,address,uint256,uint256,address))\":{\"notice\":\"Creates a new price feed\"},\"getBorrowOfferAPR(address,uint256,address,address,uint256)\":{\"notice\":\"Get the borrow offer APR\"},\"getLoanOfferAPR(address,uint256,address,address,uint256)\":{\"notice\":\"Get the loan offer APR\"},\"getMarket(uint256)\":{\"notice\":\"Get a market by index\"},\"getMarketDescriptions()\":{\"notice\":\"Get all market descriptions The market description is Size | COLLATERALSYMBOL | BORROWSYMBOL | CRLPERCENT | VERSION, such as Size | WETH | USDC | 130 | v1.2.1, for a ETH/USDC market with 130% CR\"},\"getMarkets()\":{\"notice\":\"Get all markets\"},\"getMarketsCount()\":{\"notice\":\"Get the number of markets\"},\"isAuthorized(address,address,uint8)\":{\"notice\":\"Check if actions are authorized by the `onBehalfOf` account for the `operator` account to perform\"},\"isAuthorizedAll(address,address,uint256)\":{\"notice\":\"Check if an address is authorized for all actions\"},\"isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)\":{\"notice\":\"Check if the borrow APR is lower than the loan offer APRs\"},\"isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)\":{\"notice\":\"Check if the loan APR is greater than the borrow offer APRs\"},\"isMarket(address)\":{\"notice\":\"Check if an address is a registered market\"},\"reinitialize(address,address[],address,address,address[])\":{\"notice\":\"Reinitialize the factory\"},\"revokeAllAuthorizations()\":{\"notice\":\"Revoke all authorizations for the `msg.sender` account\"},\"setAuthorization(address,uint256)\":{\"notice\":\"Set the authorization for an action for an `operator` account to perform on behalf of the `msg.sender` account\"},\"setNonTransferrableRebasingTokenVaultImplementation(address)\":{\"notice\":\"Set the non-transferrable token vault implementation\"},\"setSizeImplementation(address)\":{\"notice\":\"Set the size implementation\"},\"subscribeToCollections(uint256[])\":{\"notice\":\"Subscribe to collections\"},\"unsubscribeFromCollections(uint256[])\":{\"notice\":\"Unsubscribe from collections\"},\"version()\":{\"notice\":\"Get the version of the size factory\"}},\"notice\":\"See the documentation in {ISizeFactory}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factory/SizeFactory.sol\":\"SizeFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solady/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/=lib/properties/lib/solmate/src/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20.sol\":{\"keccak256\":\"0xf57d62241e553696a1324d225663ba2e1a51db0a51ca236d0c1b009d89b6284c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d327db93b636790909aa137124f30a856ac1631cb79c476aa188f9627fda8d03\",\"dweb:/ipfs/QmaxpmEoBFioeNYmpxJemyZ7aYF2nX1NKW1XDqREm7i6es\"]},\"lib/aave-v3-core/contracts/interfaces/IAToken.sol\":{\"keccak256\":\"0x4ec2e3180174f248c9308e03fa837d44ca91ca6c1ad67c9951a2951d46948417\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://764b8e56a62c7277efdd6dc29e1ce3f88cb997613a3142a79effa5b3d908a3fa\",\"dweb:/ipfs/QmWAF7rDjyVqkwDR6RGRwYvB3V2fe3T7G1ZSC9UuHjAAZf\"]},\"lib/aave-v3-core/contracts/interfaces/IAaveIncentivesController.sol\":{\"keccak256\":\"0x906b896fdcb878d1472f740a70680f26e9a601dc28701113ab1f89cd9edce0bd\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b17473265a3ec2ec73dac797e0e60c147590f4e5cc7016f8eb61efbe072c49e0\",\"dweb:/ipfs/QmchQGeuyUw3VW4Kgwfg5Ys9ky1F7Q6QCcKbywbRaEUPt7\"]},\"lib/aave-v3-core/contracts/interfaces/IInitializableAToken.sol\":{\"keccak256\":\"0xb7c0da4c50ab10ce00e2325e649297923497738350092f64ef4b259307039dee\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://67af6435a258e6d08151b0c37884475e040c2939c76cfb0ba7afd6264c45be87\",\"dweb:/ipfs/Qmf5wup15foyfWrGvhiZDyasJn9XZFn4Vs14Dui9smeLa3\"]},\"lib/aave-v3-core/contracts/interfaces/IPool.sol\":{\"keccak256\":\"0xbfd2077251c8dc766a56d45f4b03eb07f3441323e79c0f794efea3657a99747f\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c6ff6221de0ea877932c73c0b99d3e4535f293053ae44f9f9d6b9d265e9af2f6\",\"dweb:/ipfs/QmSTaEKrhz1xNVnx4oBzWw8DenYPShVzJoP1A9GTEWkAzX\"]},\"lib/aave-v3-core/contracts/interfaces/IPoolAddressesProvider.sol\":{\"keccak256\":\"0x33d4308d9407b4ee2297fc4ba5acce1a96a6c658189e2778a4f6b90e032fb3b5\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://978336a2a40229ccc7749344be890862ea12e17e9fffe5bb977ba3841de07b5a\",\"dweb:/ipfs/QmScNrQfDSPg1afJmkCty6fZkETUrWTmEXWeTmHoe7mSqa\"]},\"lib/aave-v3-core/contracts/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0x72b3ea433cd3386f369f1643a154bf233ec60c02acd02c32088a97556207d2e4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a5907c61cf65126001feebd94c7a869eff95045106d97e21bf7f0d3de22caf9d\",\"dweb:/ipfs/QmPARkA7YpsBtd1F3JgszZREJk6TAkqRLBkjWZUadCu3sM\"]},\"lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol\":{\"keccak256\":\"0x618fe1876e322a10269e4a96e61e516bbbec883cb79e20b508f8010027178f07\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d2814d57ad47ba13959bf9a108c25374828a370f8d64b5adb7564876927a3a06\",\"dweb:/ipfs/Qmf9xfz7svNZAzgUHUTAj6gVC7SHiT7S4obfo1Sg1Fwzbx\"]},\"lib/aave-v3-core/contracts/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x771cb99fd8519c974f7e12130387c4d9a997a6e8d0ac10e4303b842fe53efa88\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f41689d1d58bc13678c749bae8830f5a8b19b89cd135e962bf07d483350f828\",\"dweb:/ipfs/QmQSNGDxjYGqT1GU2CZzsWUTNcAtcfkg1jDGTH516nCAfN\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x0d4d7d19a052a2ef9d17b28450133631188b895e1755747fa8ad0280aadfb534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838551e10cc07e570b70aee1078e490658d3a0ab8f4adfd4f3f2a565200753da\",\"dweb:/ipfs/QmceT7R3Pqzywyxr3MSEA7VXU4axZAPS6BLy92iV97rGdG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0x374714bef85e753a13fdf792ca567ef734351029265f2cce8db533d7a942c740\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6024252b335cecf3bcf3502cfb883ffc7f8e72926734f848b0684eccaeac8027\",\"dweb:/ipfs/QmevY4P9E3eEDZ7msGJ5aFmbPGLWZr976g3EUwWeUs1JGV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0xe5775eb1fb17165cd191e8f8b2232dbea8765e7e610eaa3d6e52feead793ec5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://352614aea75c3d913cbcabb528be3d6c3335c3c77da41d59486a3193069dd095\",\"dweb:/ipfs/QmR3Nabxfme6tHrAMJCyK4MWZtpund2c4R7aFKmea3sGZM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x00c23b80f74717a6765b606001c5c633116020d488ee8f53600685b8200e4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73d0bd5ff47377a97d52149a805d82112f88c9f4ae853ef246a536bd31ce1da\",\"dweb:/ipfs/QmagG3Yup65JQPSMZScubYTCeyuUyvKLxBM3X1er6xWWxf\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7b6690c21e94a45b825631a12581b40a753ea827de5ac9127a6b5833411317f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00045f2c18d7866618c65819fe180a9a9dab25c1974fab35069bdac9cf624b6b\",\"dweb:/ipfs/QmYk62QRqGHJ3rjqfEtbfEGFHWsenv5tNMbeMfq5HkTP44\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0xaad20f8713b5cd98114278482d5d91b9758f9727048527d582e8e88fd4901fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5396e8dbb000c2fada59b7d2093b9c7c870fd09413ab0fdaba45d882959c6244\",\"dweb:/ipfs/QmXQn5XckSiUsUBpMYuiFeqnojRX4rKa9jmgjCPeTuPmhh\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5d0c69ef32eae686acc22acfb1a54df9c91356e69adec593aa69eba83ae8f6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7a9fca2cb3d802c4f8a2d0fda84ccc7f880264885801c7df08373501dd22282\",\"dweb:/ipfs/QmdtM2Loz9NzNTuQ3RXNQCPBjoPUJw35Ukpt1MSM9XH3cD\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xecd5f3c702f549fb88555e44e5f2415a4dfd6db09081aec7e98c26b6a3739c06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed40e907a6d80458a0556a609d0d3991d718c20f9f1f21475e5ec739af523231\",\"dweb:/ipfs/QmejkwADsZRxkusNU94sswMJfpLrbq8RkJTbNccUEQpc7Y\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0x4e64844c56061cd90e0a80de73534a9166704c43eed579eb83f90bc2780ce968\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cba4fab5cebdddf644b901994a7f0f52b98885d4c56012f4dc51d52c2bf9de0e\",\"dweb:/ipfs/QmVyyrRmqXrAiapewWunRVgiPVFJHpH2hKiE1py1svMSNV\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol\":{\"keccak256\":\"0xf80abf13fb1fafc127ba4e792f240dd8ea7c8c893978cdfd8439c27fae9a037b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b04fc72a656bbf3631e9c2e67b9870a2d9d235185e833fe050e9606e6816a9aa\",\"dweb:/ipfs/QmUcz4bkEkJ9pwzFu1C3n97hBQ3st9U6qTAqCdyFwddKco\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x44fa2ce1182f6c2f6bead3d1737804bf7e112252ae86e0f2e92f9b8249603f43\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://54154e8665b98d65f5dc91b256551852cb47882180b501b260657122d207c0ea\",\"dweb:/ipfs/QmcfemK1A2PXYrWB5SBFGERpMCderbFRb8BtTzQDj1sUBp\"]},\"lib/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x7825565a4bb2a34a1dc96bbfead755785dfb0df8ef81bd934c43023689685645\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f44f4614d31e3d4864c7eb13620555253b84f6a69180f8745b7c6e246a9d125\",\"dweb:/ipfs/QmfNQUcXj3KL8h9u5PqbtEC6yRtwDbKNb48uMPjdwxsKnd\"]},\"lib/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x5c57de03a91cc2ec8939865dbbcb0197bb6c353b711075eefd8e0fca5e102129\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1e994c24fd891ef8a3f5dbf5eba42b34feaf05e0376a29f91322faa18054449c\",\"dweb:/ipfs/QmNdUJGUQxd1dPkMbnA5f5UNqakxRkQE5r7bTZJAuHeapS\"]},\"lib/v3-periphery/contracts/libraries/OracleLibrary.sol\":{\"keccak256\":\"0xe313f89c69c0f1c91f0722868313b4ceb14479b3e7a0abf52a1b9bbd9c18e81b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8ad09b061f3f533c116618c20cf01510108eebebb7ff8847b0f245b8ba368d53\",\"dweb:/ipfs/QmU6vdi5JjJfjK2KqonWvRg9NeuQWarj4B1YFN22Dh9VJM\"]},\"lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"src/collections/CollectionsManager.sol\":{\"keccak256\":\"0x6d136ee04db4f66ab3e7387bc95e418b803db2de2b9703bbf1fba131664abe9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b625170a5e0e5043401e35376d6b74ec5524dff17893f030dce5baa4d080585b\",\"dweb:/ipfs/QmdwAR7pfFjkwkMxVgJ9coAuQVNHLd55uAMsQ46roPJ16x\"]},\"src/collections/CollectionsManagerBase.sol\":{\"keccak256\":\"0x6f48eee8183e7d07e39f06c463d0da0be5383d2c4df0ad9015354ea80868a12c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4627902e85711e9d7970da4e844b6c980e9c57e8a994621634c38dad777b4ee\",\"dweb:/ipfs/QmNa2582FHgAFcm2M2zNdJZxyBiQFHAveGbobY7UqHAd4K\"]},\"src/collections/actions/CollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0xe716bf4597091cfcae5c5039711d331f999f3935510a5de1e61d70dcdb60822a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://903d3fc048e7756023e37a9069af0d732fa6f3670a94e765dff66077028fbe9c\",\"dweb:/ipfs/QmafzQXAnrpHkt4yk7a5V41QaqejEm2MjFVXnSTR4UdzCj\"]},\"src/collections/actions/CollectionsManagerUserActions.sol\":{\"keccak256\":\"0x4d961355fadf16e0d5a2b848ad466bd0039f9c508322bbbe29883346333412b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f8fb10f5247f6feb1dc8e0b0adad1dce345ca2bc709fdf0daeca0149c5e4029\",\"dweb:/ipfs/QmTqCbqE3MqXWG4CeLsbjNMmvjZVAym9SrzSeiDVEQ5vWW\"]},\"src/collections/actions/CollectionsManagerView.sol\":{\"keccak256\":\"0x65b623634495054d58d550d8593f74362c937d4e3f178cdcc2abb49bc4c4ff09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://334c5a9970c22ce7036720000827d374029d065e97031e56c9bf702fae11dbe7\",\"dweb:/ipfs/QmTCXsDc1NoYtdTqaLgV2f5qF46eXdF8KN1fWHqjPFfKde\"]},\"src/collections/interfaces/ICollectionsManager.sol\":{\"keccak256\":\"0xf36eb32c1cf333628338639e1ffb9cad9cf8996a859a352af8cb6b2b781725a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77af02b46b40c96119a68de47edb7fb86bb040bfef2f0cd9d3b430bd10d34ff9\",\"dweb:/ipfs/QmXgH3jDkSK7EGjSQbgYGq1a8ozneEs4gBfvvoQxGVABHZ\"]},\"src/collections/interfaces/ICollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0xf04a0cd0a4b55d018150f2503db4847c60616ee74f87b970ef974079d228c214\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b837a6f5199ed958c07f67a43b2594a1437535bffe18c024b28596c36e4d97\",\"dweb:/ipfs/QmUBjXk8XfiJQV3EHsotzNkQMwcY1SoFAh5HXafXobSeUm\"]},\"src/collections/interfaces/ICollectionsManagerUserActions.sol\":{\"keccak256\":\"0x552b44f8d5735c65ecf42884d51257087bbfcd2c3feccf1f63fa5adc53984ff8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e4ec097f1e67e2c36117eaff4bb5de858a6f08c7dccacf25453df673eccde9\",\"dweb:/ipfs/Qmdmw2dJzKFdBmATxhtCAsLqHN7igEmVQGTBuonRXHm5K9\"]},\"src/collections/interfaces/ICollectionsManagerView.sol\":{\"keccak256\":\"0x3122f5f96caf4125f5841e2c38339ef3589d956c44bdf3028a0f083fc8719dce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6fe2a9b4f75c2a0bab02559c1e298f75154a91706595a3988f72ae893c09d8\",\"dweb:/ipfs/QmaKAc7aR4nvwtbBy5U6kxDF9zHeisEYVfeHxzMcuLy6py\"]},\"src/factory/SizeFactory.sol\":{\"keccak256\":\"0xc12066199c05f688ddf7843f46b3897887cfd5d275b50c629144de36a909f61c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1794a576e3fa45a11a604f309795c259f4e27625a13bf29df00ad132fa532bf2\",\"dweb:/ipfs/QmeWMYfdoaVb5iuoqWGHD6LY799w2QUHbtDtSJvAhWHR5p\"]},\"src/factory/SizeFactoryEvents.sol\":{\"keccak256\":\"0xb7b88e0a135da948b2967a831ad58e41a3b76aef10218c5536a68713747e06e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e961239ba806f8516188e7cd29bebc1b56969dcab8d56888b088f88b8dc3d0ed\",\"dweb:/ipfs/QmWEpWix8pRoy1cY68hTKRb67xgYKPcYr1xkhskwSvh7zN\"]},\"src/factory/SizeFactoryOffchainGetters.sol\":{\"keccak256\":\"0xe028e68944288a9d6da293ce0658bfdc216163923952f6563aab504e5d63fef0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd20c9e992675269a7e103ab7cf94cff892ff71819fbf1b11c0564741d34ed8e\",\"dweb:/ipfs/QmVL6UKpSh3cDyEkbBPSdPsMuHHpcD9DJfH8mKEzWk2GKQ\"]},\"src/factory/SizeFactoryStorage.sol\":{\"keccak256\":\"0xfd4b5e9eeb19f77f4dcb00ac8efc97796fdaf34b0adb8309e6a6766f46ca57bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb886099bfe263bfe6f0748f03981131c621100a484022066e0b639ee53afd22\",\"dweb:/ipfs/QmXfGpNpPTbPL3DND2YqvcLymVcB36ks5s8bZf4ioPty96\"]},\"src/factory/interfaces/ISizeFactory.sol\":{\"keccak256\":\"0x0c7ee30a3e26cab285f78810a3684c8d91ea4d3c839f023b839144ec69d58780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6f58c02477567655a64a0106153a70fd8e20a42c572554c2d8768ec93ee74a5\",\"dweb:/ipfs/QmUZ9aNgjWMVKBk5B4LRwJmSUWZNpDcBsEw3AhYa1UffUV\"]},\"src/factory/interfaces/ISizeFactoryOffchainGetters.sol\":{\"keccak256\":\"0x01193f70622dd06fa303e488c255bf9b86f4fd2150ded107df75eabb1c200403\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81f74325395f6f3c01d55991aa3e8b2e26c3bd8d80b3e061f3c3d90bea81603d\",\"dweb:/ipfs/QmWKW2CQdeYgK1x5L6i9k43wJVYxu9Qy6QUJD5aFoykQ8p\"]},\"src/factory/interfaces/ISizeFactoryV1_7.sol\":{\"keccak256\":\"0x88d8fee7f821de312741e741fcd2867e55905159002ba4d8ced827778bebde29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42df9dfc39ad1b6812bb10c74d1398d3882e207e9611cb2e857187d7c79e09a\",\"dweb:/ipfs/QmTcbh5pZjV2S6zj5x3nzvRJBBsyy5DuNLRD4Dvg5Ydydq\"]},\"src/factory/interfaces/ISizeFactoryV1_8.sol\":{\"keccak256\":\"0x4bfa5ade9c609d5fa3d3ebe4f01e9b285d7a1ae16e6c7d8a671d23f911b8fbe5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b23af69a7949c34386a4b5268dbe773725f0343665e3422121fe0160566f90b\",\"dweb:/ipfs/QmRovMzxG4jAF13JMqgbrtAuSBZFbdoaNtRmsAEVvcYjBX\"]},\"src/factory/libraries/Authorization.sol\":{\"keccak256\":\"0xf42a6c9392e33ad8d3be9045864c896a1552b4c3e4775198b990ea0b165f8908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02603db5e7c1b4df6b1f474e24fbd3b82e33e46deb84de07d0222bb26d2781af\",\"dweb:/ipfs/QmaDuJawdoxgvVvMerZW8CMQZXKJPXhuH4RASMTfuMJX96\"]},\"src/factory/libraries/MarketFactoryLibrary.sol\":{\"keccak256\":\"0x046488fb4d2f922a0abe8da38e7275f2dd45595f05dd0b8c83492b36e43f68b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b626fd900427f487fca13d43a4d2c29c1a1cb9b61fe3e984fb0189dd32d9c8e8\",\"dweb:/ipfs/QmQ5WrPHPf1F8C6u6XRCmjUvPXWt7i5Ae9Ltcw1kxuxFTC\"]},\"src/factory/libraries/NonTransferrableRebasingTokenVaultLibrary.sol\":{\"keccak256\":\"0x873041f677f5cdfc408d56042468798a95c01b939d963c85dbfec4d07ace8f20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a64d832039e563bb6bf47e6deb77308f340a3178e91bcdef7d66a5c770413b9d\",\"dweb:/ipfs/QmQi6DUK4t2t62ZRB7EbGaRo8tjDjBjYMMVQWUAwaGTsxb\"]},\"src/factory/libraries/PriceFeedFactoryLibrary.sol\":{\"keccak256\":\"0x9b8d42e68ddd8de063e11a611b2baf8124d60c3bd28de54a089053a2e3972611\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbf60207cac346bb51ccbed3b38adbac5e15427b489bdd73ae9689c7bac75dd9\",\"dweb:/ipfs/QmazRoKQkcPhCZQrtzaUitJYLTjj1U3pQ2FHKcNz26uVyE\"]},\"src/market/Size.sol\":{\"keccak256\":\"0x4f3acefe6bae9f645b20c6c77c0ce0e86b4098fbf5f347a01a1e850d03cc1da0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be134c52dafbb876aba662c516de6b515fa7bc34c7b01038c44ba901ab1a713d\",\"dweb:/ipfs/QmUwL8WAC5MA1peyZ4HTdxGTrhevf1cx1tSHMQtCJ8ee17\"]},\"src/market/SizeStorage.sol\":{\"keccak256\":\"0x221b1433eadc854eb92d00f8c9c2b2240cf13010e59f11d117adbae0f44b8292\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3de7469241243203c5e033e1585094a18e01cf085a0df55abaa9b07fa3b0ab5\",\"dweb:/ipfs/QmNrzYBgJD87LZJSd4St71nqfQRJBjRKpicx7PYDsdeufa\"]},\"src/market/SizeView.sol\":{\"keccak256\":\"0xa18c08740f1d7931046651ec17f448e4e8ec955c739102625387db3ae2470ff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b7af5d689040a8edb0f2603ff56063cfbf7101ea5f9c9be4bd1edea0e5133a2\",\"dweb:/ipfs/QmP2s3af9UrT8Ap36Vatfsdd1uN5S65n5EvCZJ8RpWb6mk\"]},\"src/market/SizeViewData.sol\":{\"keccak256\":\"0x4fbd20e43987c211e0f8ab6ce467b4d017092a881ad544aa44a5d2f1d555df2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f4ada02248e1224356a5e1b4fce02c60e4f14c414052a09363e9803317eacf\",\"dweb:/ipfs/QmZ69LGdEoZWajqVWiHrDfctYmArkt9ZWMYARwX6htQQ7x\"]},\"src/market/interfaces/IMulticall.sol\":{\"keccak256\":\"0x6e37873de589b4bec14611f36d283ab797d149a2ea61be2d7f3ac32d503dbe41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88a1095d11f66268b50848a9868f28020583e8a4bb0d2885a59624c74e40f989\",\"dweb:/ipfs/QmSDYFNMkdriiJwn1crwmN4GGAsGCAMz89jaw3qAdALF7R\"]},\"src/market/interfaces/ISize.sol\":{\"keccak256\":\"0x40b4880fd0c38a481657cc850edee8c0e76df6b36c86fda08db9704089aaa142\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2725d31deb88142806b1932c94a2fe7a29f4342e4d30ce10f789c83706c17912\",\"dweb:/ipfs/QmQfruVNCbhsNZDftExivWc8gGmSGfPNLKjDHrEAWUwe1m\"]},\"src/market/interfaces/ISizeAdmin.sol\":{\"keccak256\":\"0x1f2fda9cf43a960e920186ce0414d596f0c73e20e0ab262a047ffcab5b8a4a9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092faa4adc6268f096580faebcf426c87def65e02525abfecd04aa1acfceaa88\",\"dweb:/ipfs/QmWtjocrjvMRqKH47XiP7GKPRPKPCX3ApnpgpFjt3X9eRf\"]},\"src/market/interfaces/ISizeView.sol\":{\"keccak256\":\"0xb3c51331a555a1525c7d011cc732d6d5658eb77d55d289382b00c125d3ba7617\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b6e78c75a3c09096562538c3000cda5d9d1771799a4eb9c5b4511b6c1ba2a9b\",\"dweb:/ipfs/QmPiFHxx5BCmwyiCKMEgERMLQit7CqoQsCTwMKVBjSdrjZ\"]},\"src/market/interfaces/IWETH.sol\":{\"keccak256\":\"0x4f7e2b2d5033a819263abfafba2aa513dd9a25bb1ce21cfe497daa0ac4a9ec7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e209482985a7a680a0ffc2a6a6e3d0c1fb832db256dc1240c5b054fab19253e\",\"dweb:/ipfs/QmWQC9Qy3Mn9xfvM9xkcru9wcdTgq4jMjiJSbDtSMRfc9t\"]},\"src/market/interfaces/v1.7/ISizeV1_7.sol\":{\"keccak256\":\"0xd884198d67b3d0d77fd5cc30ae96f18f0748b7f540704c130b7b163982d57e83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6948005cacbd6c490a8d158a9d8972b4baf0a05e1715d6c790b6d1f42f0d9b47\",\"dweb:/ipfs/Qmcp2Atca3wK2V1cyMdKLgBQkTPdYjeXqM5zjw3aF3KCdc\"]},\"src/market/interfaces/v1.7/ISizeViewV1_7.sol\":{\"keccak256\":\"0x1ae3e0e566182a39cea1e4a4b2f3ba8e47c9c5dc8aeed24fd5a90d35a5dd317e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c79e7a02e98992bca9e5bc5eb4513100b557f511b1cb0245f7838e12e87efeb\",\"dweb:/ipfs/QmPZDziwpJsReTqbzF7JiWntq4XitinnAJjDd393ePRB6T\"]},\"src/market/interfaces/v1.8/ISizeViewV1_8.sol\":{\"keccak256\":\"0xd44b700b471fcdd6dab74676eca4a3d2ab7435c478cdc83c09ff3426c3eec9b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://440c6ab93d7bf25b47885feb522e0f71963a2bb3247ba820c0f5ce6c3274feb7\",\"dweb:/ipfs/QmV4cAiAb16rMZeKWqtDe69Z9NKWHcuxvGJ6pqxbBa9GUu\"]},\"src/market/libraries/AccountingLibrary.sol\":{\"keccak256\":\"0x7951928ccae855e9fabc380ad88075fee1822e00dadeeb969c5add0e7b1e9a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b895fa756fd379def6e9cb674a9618beeb7e7cc2f9708816cbafe36a56acd769\",\"dweb:/ipfs/QmbAg4HReEqmoJ23JrJpy7Rp2cgZA87VUgMrBFW3yr6Cp8\"]},\"src/market/libraries/Errors.sol\":{\"keccak256\":\"0x7abdde1b276a117d81a1620afa3480be06bf144e072818e693969cf3d2a14baa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0be4d6bed4cb5478cf73bda6c1fddc9ab6b77f3c34835deb3f1bdcefc3a882\",\"dweb:/ipfs/QmX7gNjXw5ZXCWkTPkHnqfA8XPa4m1mrQvJcsRumKtkbvx\"]},\"src/market/libraries/Events.sol\":{\"keccak256\":\"0x85079adf3af32759510c2dbd82ab3f5153ea2ee4b7f2d35c9162659308f3db6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://296805f12ae70a15193390ffa8efbc611460227a995a9e1d46e0b3d4228b3f0a\",\"dweb:/ipfs/QmeGzcqCvi7hfk6Bxv7vVZvvfLFCzSup93MwrpRWQZB82K\"]},\"src/market/libraries/LoanLibrary.sol\":{\"keccak256\":\"0x40dcae0ebbfff42282a5ceb00b5698c882242e028740099bc5828a08fa7e77e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efb877878b973bb6e8913cc3c4f4948ca7a43d0036dc243862cc8de7a3e92384\",\"dweb:/ipfs/QmYt8p1H7gAyTExvnKV1Anhfnjk5o774yi4ibHGUxByExv\"]},\"src/market/libraries/Math.sol\":{\"keccak256\":\"0xa270b1631b8b469d0e4bfddfaa0bf87ee285fa7532e1ed31f28674356fce0e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f0d027e9af0e81111d0b573c836502f94f5f0e5a3b5c0fc8ff025060e78bb53\",\"dweb:/ipfs/QmbS7Wnub3nmeo7yfeQht68MzWwMrQ3Ef7bUtiNtDMtXDx\"]},\"src/market/libraries/Multicall.sol\":{\"keccak256\":\"0xaf98fced0f94fce8f0c27d1f5160019eeb17e3eb67316ca245f52c39df257fa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://852c668a4f10a61c2ceba43aac27993869ae591b8479c88d5c71bd4760cab1b6\",\"dweb:/ipfs/Qmer5YE99KsLeSKXf1QLxeDcUcLNgYkjFRwHzvBuG7JtUp\"]},\"src/market/libraries/OfferLibrary.sol\":{\"keccak256\":\"0x542c3ba9d51c00f0d02c7db31b27eedc6d5cb7d723b63f5fcf4ee360e0c43098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d498bf3e0e807c69c06f51509a506078dbd9d407ba36966f6979d1bb494d6ea4\",\"dweb:/ipfs/QmPH4Hz8SgTErj42X3xGHxid6BQiYudwbgEE6ZJ88kNTbv\"]},\"src/market/libraries/RiskLibrary.sol\":{\"keccak256\":\"0xc639312f28fb460000aff9c0869ffb2c3bdaab5e6d5aff6895df6bc2d3461b7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4eb18a5f3fc5ecacc2a166e0f5c456246bcff32284d29fa14d819f7616c7718d\",\"dweb:/ipfs/QmR9aSvd6G1qmqTKvT21fHk8EVeKGjKysn34qpCFTXhKXz\"]},\"src/market/libraries/YieldCurveLibrary.sol\":{\"keccak256\":\"0x8d4b1f45d67387169c3b38cc034305eba91ad306dac7021d4658e3b8bbc9a135\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438376203571e01cbb26ea58c192d3036a1e623c0c5897c52aeafaa90e281cd3\",\"dweb:/ipfs/QmcRNJKsudM9bZvCPCSEQWxPHvVEfQD1u2MPf8S33fh3o3\"]},\"src/market/libraries/actions/BuyCreditLimit.sol\":{\"keccak256\":\"0xccb77182ce62b7ea147ee65ad7e32076f9e565a2605c18842087103e471f79f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://571a3265ef2664d9fea268e229af1bc0e430f458efe6898a03532de799d959ef\",\"dweb:/ipfs/QmSA1hphKNeRdqKtKpbfM3yof9TTd13r9X5ei7jNiuhcwQ\"]},\"src/market/libraries/actions/BuyCreditMarket.sol\":{\"keccak256\":\"0x8bc8b7c8c274648d666d0e83e3605f1cbc02b63f283fb72485e32cb2c9fdb1d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dfd2009d13f1cd03d1eff41195c66617b51390d65d7c805c0bd3ef288b9a5925\",\"dweb:/ipfs/QmczwzFqX7vugWArcsLvjzGzCkBsRyyrv5s8nUkq2iAnHx\"]},\"src/market/libraries/actions/Claim.sol\":{\"keccak256\":\"0x0145b5a2bef3cb5b6348c0826a020eaaf8db1880bb7aa2804bf03cc16eaf2adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de61cb5c77a1be1cc00990f8b21e1ad41005c811309244acb314d3e3f2324427\",\"dweb:/ipfs/QmVJJ8RgFXtNg3KLcevf99ZyhXQQtAH32i7MZXM1VLrbyd\"]},\"src/market/libraries/actions/Compensate.sol\":{\"keccak256\":\"0x5fa7ce8b74eeea09d12b78e3b31dbc7b37fca58b235299ad5d9f8e99ea400719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fbeff16ba76d1e3735f4d067ba16da7b0f35176ff9ea501a99f94063936bc5d\",\"dweb:/ipfs/QmYyogfmQmrpEksBc9uSjVQvYAWdaq31pJ3j6aAnc8D1rA\"]},\"src/market/libraries/actions/CopyLimitOrders.sol\":{\"keccak256\":\"0x0a05feb3e672625f69bfddee0a52201018e3b6d2eaa11a6b15fde1841ef99fef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://747191eaf25efda3490ae6619b0f2b252231b8750b83ae6c078ef9bf8125942b\",\"dweb:/ipfs/QmUiLrSfYdHUqDKAm6Ted47aQvV3ysHETarRbitvdGWbVg\"]},\"src/market/libraries/actions/Deposit.sol\":{\"keccak256\":\"0x75e2039804c341b06705e712a8403350bf3860207178872eba02b12acc1a55e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76f871e1a3b6e9accffffac39be2a51d90cb16028511f0f54597bdb8e8c2c6fe\",\"dweb:/ipfs/QmNzQiqWUiVnqpL9EhyG9tbF36nksZJ3YeT3hNioQLCpwG\"]},\"src/market/libraries/actions/Initialize.sol\":{\"keccak256\":\"0xbad2d5f92aaeee28a87c1feda397f787cf1a2f8432bf05371f79b2309e9858f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c6959ee090add484fe99aa21bb8e879c36a97a1d00b4d49dfade775c4813a63\",\"dweb:/ipfs/QmZycV28jdCXWHy7QV7uqtqxaiReZaTYtvvgECuHb3gwJQ\"]},\"src/market/libraries/actions/Liquidate.sol\":{\"keccak256\":\"0x20e7ccfb443548a7325a592034bcfb6f474c313f9cf0453fafc45777a280d85f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec7a9075a20c68b7ca70c6b283692724d2e42faf0596187bd1075d8d7b6c03b1\",\"dweb:/ipfs/QmbHMZ2EmbhY4w51vWUkuEvr2r8XEkJkYvM56Tk5h1yr9G\"]},\"src/market/libraries/actions/LiquidateWithReplacement.sol\":{\"keccak256\":\"0x7bb6ac2228d387c7a8e3f38299b847a3123f26bcb6294b22ee11970b9a042cbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34cfbe1582855e30a25cf3b4326d9a752e1901b50776779ca92d094e9509dea3\",\"dweb:/ipfs/QmNZiMDEjt41JYUsrkyNDfKGqSMxbFMAaf2dbznqaEfvVT\"]},\"src/market/libraries/actions/PartialRepay.sol\":{\"keccak256\":\"0xcca168dab87cf6c5a383340443041194ea3ca272aa48cdbe7ffcb263be767900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd4a81eeab2fbb3ac34e21fdfe3acf4cbae5802984ddd0eabcc4b5dcf5b80315\",\"dweb:/ipfs/QmVZ9wKB1vjGghXfCE3AFNGTiGLekqbLEELSdJ26eeXy3F\"]},\"src/market/libraries/actions/Repay.sol\":{\"keccak256\":\"0x8ce3d2f0cf14efb0489f509f244c05d8045ea5eecffceb2d932321d4f62a5474\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://773030fd26b7cd147d3c1c745a858e541dee98331c362de19e7c7f021be7c44e\",\"dweb:/ipfs/QmZ8Du3qDSdpM64JCD6PqfqQ4DtpcfaVX6ujiCEJhgUhX5\"]},\"src/market/libraries/actions/SelfLiquidate.sol\":{\"keccak256\":\"0x2d71cff942efc93fb7aa3a0a636e44562e0fa44ba4d503f323c6d08e7fdd8af3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdc43c74a42cffbf3844939df1d21a2b392ad3596ece8f1e9a6ebe08c2ec64be\",\"dweb:/ipfs/QmRUScCkvE4EADEUEvdwrsnzfLsq7xjFt1xsSZ4PZfs6J7\"]},\"src/market/libraries/actions/SellCreditLimit.sol\":{\"keccak256\":\"0xe8fe9ab69faccffa8539167973d13c5afe04ca8358316a092540171d084654b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c626cb1ad9347b0eabd162f590c61175cdc687958bc6684843201713c5efa89\",\"dweb:/ipfs/QmNqZc3Zh2Nvj6exvG89XShBY4WtBJSh6iKWr7gZB8sQ3k\"]},\"src/market/libraries/actions/SellCreditMarket.sol\":{\"keccak256\":\"0xf4bd799bb7cf51c565d530ff42cebf0a3b1d2b01a783f484c3ffda112eca962d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7d0d213d6c00b09f7508887541968939a960a86160f6812143bff9c07ecf86\",\"dweb:/ipfs/QmRafSq5sVAsmpttMGWM1FJJz9Gg1bTrVthP6k2Jppe9gr\"]},\"src/market/libraries/actions/SetUserConfiguration.sol\":{\"keccak256\":\"0xfc4ebcf3b25f112bf4f268167289f65904d45484a35930c5a665a6a405b10f07\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c65465dd5d1fbeb0c5ce1b48cce941b2c92dcf32d1f1d3e543513ec858bd9df\",\"dweb:/ipfs/QmQNQSUFHYNgvemQNT5HtcLR2ybe4uHLT8o3rDVXHfFbwt\"]},\"src/market/libraries/actions/UpdateConfig.sol\":{\"keccak256\":\"0x040b1b2b4dfb446b50bce809c070a3b977e7c614f2bfdf632b10f9c89ec8d80e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://067a98624ca328a30debcd8d09adb675ad3ebeafe0829269ca5f42574babcca3\",\"dweb:/ipfs/QmU3K7oJnmknBtCyVNR6d2fLsUFCPvozr1DvY9W42cw1Eu\"]},\"src/market/libraries/actions/Withdraw.sol\":{\"keccak256\":\"0x7a742d3bababff2547f5e71d52feb7a6d93549beb896981a8e220952c02f52df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53abc4a277560dd0688de69f0dc8aa6531ad4ec7c808d4592e656b214fd71f21\",\"dweb:/ipfs/QmT61oye8uwqzSwnqK74PFkJu2kV63wHpJKSocH8yur3eR\"]},\"src/market/token/NonTransferrableRebasingTokenVault.sol\":{\"keccak256\":\"0x408c52f8e5ef7e79e1afcda1a42004a163e8856156ae859388c8b841349b9a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dae3ad0b3f501a9788657b9a961a7ad8440c5cc78f62f581a6949a21166b5481\",\"dweb:/ipfs/QmNurenVtRDWbmNHtb1QDzVNbB6sBZcN8LGcn2ayaCFBig\"]},\"src/market/token/NonTransferrableToken.sol\":{\"keccak256\":\"0xf82118604ddbcd5d9ff708d739396e993d9621cff7b07f22a519141ca39a9e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f371fb37a2ac76630302b1284d62e8657f038b504ce9884723574c2a3de32ec\",\"dweb:/ipfs/QmRsjmBirftC8Jih4jBG2BoJmpe4RRAAsEwsmtLjWicTVf\"]},\"src/market/token/adapters/IAdapter.sol\":{\"keccak256\":\"0xb953b0e5e09d775cf4b6ef970131883c052510a156d0b6a7f6550aa7a3344d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62272b20b8f5d9fe2d7a55e5774835cede834df2d4ee8b3456d35e54547f0fb8\",\"dweb:/ipfs/Qmcf9RPBiArogFRFqZjt7jvtBQCuRGDPyQMakVDGPSDHF9\"]},\"src/oracle/IPriceFeed.sol\":{\"keccak256\":\"0x7ec983afe56cc8eee5d4b3573a51665ad0cfc8835f8fb8fd864b2a5a119f9a90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fc706986c7c132d4b0b95ec2f7b3aa49def6511ebe84643ee1359b2318da48\",\"dweb:/ipfs/QmQCwub8SCenVvQnVtL24Eny3jNZrugoxKsu86da55nBKJ\"]},\"src/oracle/adapters/ChainlinkPriceFeed.sol\":{\"keccak256\":\"0x71a4ccb7d9469f4d7a914a81c754b1278152a387f8154e0f9793e0e3d010a599\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d953653f6481b344d0d00a677a8301f3006a50c3b90744c39cd3eda6f508818b\",\"dweb:/ipfs/QmYR1RvdMboMpH9ykJN5WwuC3AabSvPS2JA4t4afxa7gyh\"]},\"src/oracle/adapters/ChainlinkSequencerUptimeFeed.sol\":{\"keccak256\":\"0x3d200d7fcc7c457a201f2bb32a0b68ea13b2b697cb300bbd587828bff5ffe8b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d72923e346e73eb0d42d055437dc6df059c3a8f27b08ff5aacd7cf7fdf90eec5\",\"dweb:/ipfs/QmPYENtSCwseMxYtQeKAkVe8DuCJYzRGpFRxDgw85xf2g8\"]},\"src/oracle/adapters/UniswapV3PriceFeed.sol\":{\"keccak256\":\"0x84027f9673163df8f7dcbd7c828cf5bada6a9c7de1986d3821ec75004a11f639\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0caf13ef11f4ad681f395ee48145d72fcd3a1eae5b439efb132be9cccd8f1243\",\"dweb:/ipfs/QmdrnR1auzKaQhZ7AqWRKHnajw1Y6oLmdNFYJzKLzb5E72\"]},\"src/oracle/v1.5.1/PriceFeed.sol\":{\"keccak256\":\"0x36473f98f23968eaab386e44c1404652c7ef88c09db9772ab3195d8305829762\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5db471c144f3a43e9e07391890e7b29e39b64ae3fb0e73b66dd313801b03542a\",\"dweb:/ipfs/Qmf5GMB6SdKNCUPCbV4nYmxUjg6z3iKiweYU2ajY9BrGbC\"]},\"src/oracle/v1.5.2/IPriceFeedV1_5_2.sol\":{\"keccak256\":\"0x24fbee1fe53fab416e870b8a277bf4c667fce042ad6ff4a7ca4bae7b123625bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d83b28b7f9bca0eb42758c8a75ddc86315b637d734342e532f8ffeda2c772fdd\",\"dweb:/ipfs/QmfAk6FJvMYgTSPcuDt3ZDn4XvKmtXLdmuY5kgJ8vb74YP\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"}],\"name\":\"INVALID_ACTIONS_BITMAP\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"INVALID_MARKET\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NULL_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"action\",\"type\":\"uint8\"}],\"name\":\"UNAUTHORIZED_ACTION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldCollectionsManager\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newCollectionsManager\",\"type\":\"address\"}],\"name\":\"CollectionsManagerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrowTokenVault\",\"type\":\"address\"}],\"name\":\"CreateBorrowTokenVault\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"market\",\"type\":\"address\"}],\"name\":\"CreateMarket\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"CreatePriceFeed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldNonTransferrableRebasingTokenVaultImplementation\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newNonTransferrableRebasingTokenVaultImplementation\",\"type\":\"address\"}],\"name\":\"NonTransferrableRebasingTokenVaultImplementationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RevokeAllAuthorizations\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"SetAuthorization\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSizeImplementation\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSizeImplementation\",\"type\":\"address\"}],\"name\":\"SizeImplementationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"authorizationNonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"authorizations\",\"outputs\":[{\"internalType\":\"ActionsBitmap\",\"name\":\"authorizedActionsBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"callMarket\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionsManager\",\"outputs\":[{\"internalType\":\"contract ICollectionsManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPool\",\"name\":\"variablePool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"underlyingBorrowToken\",\"type\":\"address\"}],\"name\":\"createBorrowTokenVault\",\"outputs\":[{\"internalType\":\"contract NonTransferrableRebasingTokenVault\",\"name\":\"borrowTokenVault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"swapFeeAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fragmentationFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationRewardPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"overdueCollateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralProtocolPercent\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"internalType\":\"struct InitializeFeeConfigParams\",\"name\":\"feeConfigParams\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"crOpening\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crLiquidation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumCreditBorrowToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"}],\"internalType\":\"struct InitializeRiskConfigParams\",\"name\":\"riskConfigParams\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"variablePoolBorrowRateStaleRateInterval\",\"type\":\"uint64\"}],\"internalType\":\"struct InitializeOracleParams\",\"name\":\"oracleParams\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingCollateralToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlyingBorrowToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variablePool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrowTokenVault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sizeFactory\",\"type\":\"address\"}],\"internalType\":\"struct InitializeDataParams\",\"name\":\"dataParams\",\"type\":\"tuple\"}],\"name\":\"createMarket\",\"outputs\":[{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"uniswapV3Pool\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"twapWindow\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"averageBlockTime\",\"type\":\"uint32\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"quoteToken\",\"type\":\"address\"},{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"baseAggregator\",\"type\":\"address\"},{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"quoteAggregator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseStalePriceInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteStalePriceInterval\",\"type\":\"uint256\"},{\"internalType\":\"contract AggregatorV3Interface\",\"name\":\"sequencerUptimeFeed\",\"type\":\"address\"}],\"internalType\":\"struct PriceFeedParams\",\"name\":\"_priceFeedParams\",\"type\":\"tuple\"}],\"name\":\"createPriceFeed\",\"outputs\":[{\"internalType\":\"contract PriceFeed\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getBorrowOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rateProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"getLoanOfferAPR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getMarket\",\"outputs\":[{\"internalType\":\"contract ISize\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMarketDescriptions\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"descriptions\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMarkets\",\"outputs\":[{\"internalType\":\"contract ISize[]\",\"name\":\"_markets\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMarketsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"enum Action\",\"name\":\"action\",\"type\":\"uint8\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"ActionsBitmap\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"}],\"name\":\"isAuthorizedAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"isBorrowAPRLowerThanLoanOfferAPRs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanAPR\",\"type\":\"uint256\"},{\"internalType\":\"contract ISize\",\"name\":\"market\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tenor\",\"type\":\"uint256\"}],\"name\":\"isLoanAPRGreaterThanBorrowOfferAPRs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"candidate\",\"type\":\"address\"}],\"name\":\"isMarket\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonTransferrableTokenVaultImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revokeAllAuthorizations\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"ActionsBitmap\",\"name\":\"actionsBitmap\",\"type\":\"uint256\"}],\"name\":\"setAuthorization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ICollectionsManager\",\"name\":\"_collectionsManager\",\"type\":\"address\"}],\"name\":\"setCollectionsManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nonTransferrableTokenVaultImplementation\",\"type\":\"address\"}],\"name\":\"setNonTransferrableRebasingTokenVaultImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sizeImplementation\",\"type\":\"address\"}],\"name\":\"setSizeImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"}],\"name\":\"setUserCollectionCopyLimitOrderConfigs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyLoanOfferConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTenor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAPR\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"offsetAPR\",\"type\":\"int256\"}],\"internalType\":\"struct CopyLimitOrderConfig\",\"name\":\"copyBorrowOfferConfig\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"setUserCollectionCopyLimitOrderConfigsOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sizeImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"name\":\"subscribeToCollections\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"subscribeToCollectionsOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"}],\"name\":\"unsubscribeFromCollections\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"collectionIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"unsubscribeFromCollectionsOnBehalfOf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Size (https://size.credit/)\",\"custom:security-contact\":\"security@size.credit\",\"details\":\"Expects `AccessControlUpgradeable` to have a single DEFAULT_ADMIN_ROLE role address set.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"callMarket(address,bytes)\":{\"details\":\"Anybody can do arbitrary Size calls with this function, so users MUST revoke authorizations at the end of the transaction. Since this function executes arbitrary calls on Size markets, it should not have any trust assumptions on the ACL of factory-executed calls.\",\"params\":{\"data\":\"The data to call the market with\",\"market\":\"The market to call\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createBorrowTokenVault(address,address)\":{\"details\":\"The contract owner is set as the owner of the borrow token vault The borrow token vault needs to have adapters set after initialization\"},\"createMarket((uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256),(address,uint64),(address,address,address,address,address,address))\":{\"details\":\"The contract owner is set as the owner of the market\"},\"getBorrowOfferAPR(address,uint256,address,address,uint256)\":{\"details\":\"Since v1.8, this function is moved to the SizeFactory contract as it contains the link to the CollectionsManager, where collections provide APRs for different markets through rate providers\",\"params\":{\"collectionId\":\"The collection id\",\"market\":\"The market\",\"rateProvider\":\"The rate provider\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getLoanOfferAPR(address,uint256,address,address,uint256)\":{\"details\":\"Since v1.8, this function is moved to the SizeFactory contract as it contains the link to the CollectionsManager, where collections provide APRs for different markets through rate providers\",\"params\":{\"collectionId\":\"The collection id\",\"market\":\"The market\",\"rateProvider\":\"The rate provider\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"apr The APR\"}},\"getMarket(uint256)\":{\"params\":{\"index\":\"The index of the market\"},\"returns\":{\"_0\":\"market The market\"}},\"getMarketDescriptions()\":{\"returns\":{\"descriptions\":\"The market descriptions\"}},\"getMarkets()\":{\"returns\":{\"_markets\":\"markets The markets\"}},\"getMarketsCount()\":{\"returns\":{\"_0\":\"marketsCount The number of markets\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isAuthorized(address,address,uint8)\":{\"params\":{\"action\":\"The action\",\"onBehalfOf\":\"The account on behalf of which the action is authorized\",\"operator\":\"The operator account\"},\"returns\":{\"_0\":\"The authorization status\"}},\"isAuthorizedAll(address,address,uint256)\":{\"params\":{\"actionsBitmap\":\"The actions bitmap\",\"onBehalfOf\":\"The account on behalf of which the action is authorized\",\"operator\":\"The operator to check\"},\"returns\":{\"_0\":\"authorized True if the address is authorized for all actions\"}},\"isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)\":{\"params\":{\"borrowAPR\":\"The borrow APR\",\"market\":\"The market\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"isLower True if the borrow APR is lower than the loan offer APRs, false otherwise\"}},\"isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)\":{\"params\":{\"loanAPR\":\"The loan APR\",\"market\":\"The market\",\"tenor\":\"The tenor\",\"user\":\"The user\"},\"returns\":{\"_0\":\"isGreater True if the loan APR is greater than the borrow offer APRs, false otherwise\"}},\"isMarket(address)\":{\"params\":{\"candidate\":\"The candidate to check\"},\"returns\":{\"_0\":\"True if the candidate is a registered market\"}},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setAuthorization(address,uint256)\":{\"details\":\"Actions bitmap are encoded a uint256 value because all external actions can fit in a uint256 To construct the actionsBitmap, the `Authorization.getActionsBitmap` functions can be used Not all actions require authorization (for example, `repay`, `liquidate`, etc.) In order to possible to authorize/revoke many actions at once, simply construct the actions bitmap using bitmap operations For example, to revoke an operator, simply set the authorization bitmap for that operator to `uint256(0)` To revoke all authorizations for all operators at once, use `revokeAllAuthorizations` Calling this function twice will set the actionsBitmap for the operator with the new value\",\"params\":{\"actionsBitmap\":\"The actions bitmap\",\"operator\":\"The operator account\"}},\"setNonTransferrableRebasingTokenVaultImplementation(address)\":{\"params\":{\"_nonTransferrableTokenVaultImplementation\":\"The new non-transferrable token vault implementation\"}},\"setSizeImplementation(address)\":{\"params\":{\"_sizeImplementation\":\"The new size implementation\"}},\"setUserCollectionCopyLimitOrderConfigs(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))\":{\"details\":\"Added in v1.8.1\"},\"setUserCollectionCopyLimitOrderConfigsOnBehalfOf(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256),address)\":{\"details\":\"Added in v1.8.1\"},\"subscribeToCollections(uint256[])\":{\"params\":{\"collectionIds\":\"The collection ids to subscribe to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"unsubscribeFromCollections(uint256[])\":{\"params\":{\"collectionIds\":\"The collection ids to unsubscribe from\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"version()\":{\"returns\":{\"_0\":\"version The version of the size factory\"}}},\"title\":\"SizeFactory\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"callMarket(address,bytes)\":{\"notice\":\"Call a market with data. This can be used to batch operations on multiple markets.\"},\"createBorrowTokenVault(address,address)\":{\"notice\":\"Creates a new borrow token vault\"},\"createMarket((uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256),(address,uint64),(address,address,address,address,address,address))\":{\"notice\":\"Creates a new market\"},\"createPriceFeed((address,uint32,uint32,address,address,address,address,uint256,uint256,address))\":{\"notice\":\"Creates a new price feed\"},\"getBorrowOfferAPR(address,uint256,address,address,uint256)\":{\"notice\":\"Get the borrow offer APR\"},\"getLoanOfferAPR(address,uint256,address,address,uint256)\":{\"notice\":\"Get the loan offer APR\"},\"getMarket(uint256)\":{\"notice\":\"Get a market by index\"},\"getMarketDescriptions()\":{\"notice\":\"Get all market descriptions The market description is Size | COLLATERALSYMBOL | BORROWSYMBOL | CRLPERCENT | VERSION, such as Size | WETH | USDC | 130 | v1.2.1, for a ETH/USDC market with 130% CR\"},\"getMarkets()\":{\"notice\":\"Get all markets\"},\"getMarketsCount()\":{\"notice\":\"Get the number of markets\"},\"isAuthorized(address,address,uint8)\":{\"notice\":\"Check if actions are authorized by the `onBehalfOf` account for the `operator` account to perform\"},\"isAuthorizedAll(address,address,uint256)\":{\"notice\":\"Check if an address is authorized for all actions\"},\"isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)\":{\"notice\":\"Check if the borrow APR is lower than the loan offer APRs\"},\"isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)\":{\"notice\":\"Check if the loan APR is greater than the borrow offer APRs\"},\"isMarket(address)\":{\"notice\":\"Check if an address is a registered market\"},\"revokeAllAuthorizations()\":{\"notice\":\"Revoke all authorizations for the `msg.sender` account\"},\"setAuthorization(address,uint256)\":{\"notice\":\"Set the authorization for an action for an `operator` account to perform on behalf of the `msg.sender` account\"},\"setNonTransferrableRebasingTokenVaultImplementation(address)\":{\"notice\":\"Set the non-transferrable token vault implementation\"},\"setSizeImplementation(address)\":{\"notice\":\"Set the size implementation\"},\"setUserCollectionCopyLimitOrderConfigs(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))\":{\"notice\":\"Set the copy limit order configs for a user and collection\"},\"setUserCollectionCopyLimitOrderConfigsOnBehalfOf(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256),address)\":{\"notice\":\"Same as `setUserCollectionCopyLimitOrderConfigs` but `onBehalfOf`\"},\"subscribeToCollections(uint256[])\":{\"notice\":\"Subscribe to collections\"},\"subscribeToCollectionsOnBehalfOf(uint256[],address)\":{\"notice\":\"Same as `subscribeToCollections` but `onBehalfOf`\"},\"unsubscribeFromCollections(uint256[])\":{\"notice\":\"Unsubscribe from collections\"},\"unsubscribeFromCollectionsOnBehalfOf(uint256[],address)\":{\"notice\":\"Same as `unsubscribeFromCollections` but `onBehalfOf`\"},\"version()\":{\"notice\":\"Get the version of the size factory\"}},\"notice\":\"See the documentation in {ISizeFactory}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factory/SizeFactory.sol\":\"SizeFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ERC-7540-Reference/=lib/ERC-7540-Reference/\",\":@aave/=lib/aave-v3-core/contracts/\",\":@chainlink/=lib/chainlink/\",\":@chimera/=lib/chimera/src/\",\":@crytic/properties/=lib/properties/\",\":@deprecated/=deprecated/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle-core-v2-public/\",\":@safe-utils/=lib/safe-utils/src/\",\":@script/=script/\",\":@solady/=lib/solady/\",\":@solidity-http/=lib/solidity-http/src/\",\":@solmate/=lib/solmate/\",\":@src/=src/\",\":@tenderly-utils/=lib/tenderly-utils/src/\",\":@test/=test/\",\":@uniswap/v3-core/=lib/v3-core/\",\":@uniswap/v3-periphery/=lib/v3-periphery/\",\":ERC-7540-Reference/=lib/ERC-7540-Reference/src/\",\":ERC4626/=lib/properties/lib/ERC4626/contracts/\",\":aave-v3-core/=lib/aave-v3-core/\",\":chainlink/=lib/chainlink/contracts/\",\":chimera/=lib/chimera/src/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":halmos-helpers-lib/=lib/halmos-helpers-lib/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/\",\":properties/=lib/properties/contracts/\",\":safe-smart-account/=lib/safe-utils/lib/safe-smart-account/\",\":safe-utils/=lib/safe-utils/src/\",\":solady/=lib/solady/\",\":solidity-http/=lib/solidity-http/src/\",\":solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/\",\":solmate/auth/=lib/solmate/src/auth/\",\":solmate/mixins/=lib/solmate/src/tokens/\",\":solmate/tokens/=lib/solmate/src/tokens/\",\":solmate/utils/=lib/solmate/src/utils/\",\":tenderly-utils/=lib/tenderly-utils/src/\",\":v3-core/=lib/v3-core/contracts/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20.sol\":{\"keccak256\":\"0xf57d62241e553696a1324d225663ba2e1a51db0a51ca236d0c1b009d89b6284c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d327db93b636790909aa137124f30a856ac1631cb79c476aa188f9627fda8d03\",\"dweb:/ipfs/QmaxpmEoBFioeNYmpxJemyZ7aYF2nX1NKW1XDqREm7i6es\"]},\"lib/aave-v3-core/contracts/interfaces/IAToken.sol\":{\"keccak256\":\"0x4ec2e3180174f248c9308e03fa837d44ca91ca6c1ad67c9951a2951d46948417\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://764b8e56a62c7277efdd6dc29e1ce3f88cb997613a3142a79effa5b3d908a3fa\",\"dweb:/ipfs/QmWAF7rDjyVqkwDR6RGRwYvB3V2fe3T7G1ZSC9UuHjAAZf\"]},\"lib/aave-v3-core/contracts/interfaces/IAaveIncentivesController.sol\":{\"keccak256\":\"0x906b896fdcb878d1472f740a70680f26e9a601dc28701113ab1f89cd9edce0bd\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b17473265a3ec2ec73dac797e0e60c147590f4e5cc7016f8eb61efbe072c49e0\",\"dweb:/ipfs/QmchQGeuyUw3VW4Kgwfg5Ys9ky1F7Q6QCcKbywbRaEUPt7\"]},\"lib/aave-v3-core/contracts/interfaces/IInitializableAToken.sol\":{\"keccak256\":\"0xb7c0da4c50ab10ce00e2325e649297923497738350092f64ef4b259307039dee\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://67af6435a258e6d08151b0c37884475e040c2939c76cfb0ba7afd6264c45be87\",\"dweb:/ipfs/Qmf5wup15foyfWrGvhiZDyasJn9XZFn4Vs14Dui9smeLa3\"]},\"lib/aave-v3-core/contracts/interfaces/IPool.sol\":{\"keccak256\":\"0xbfd2077251c8dc766a56d45f4b03eb07f3441323e79c0f794efea3657a99747f\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c6ff6221de0ea877932c73c0b99d3e4535f293053ae44f9f9d6b9d265e9af2f6\",\"dweb:/ipfs/QmSTaEKrhz1xNVnx4oBzWw8DenYPShVzJoP1A9GTEWkAzX\"]},\"lib/aave-v3-core/contracts/interfaces/IPoolAddressesProvider.sol\":{\"keccak256\":\"0x33d4308d9407b4ee2297fc4ba5acce1a96a6c658189e2778a4f6b90e032fb3b5\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://978336a2a40229ccc7749344be890862ea12e17e9fffe5bb977ba3841de07b5a\",\"dweb:/ipfs/QmScNrQfDSPg1afJmkCty6fZkETUrWTmEXWeTmHoe7mSqa\"]},\"lib/aave-v3-core/contracts/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0x72b3ea433cd3386f369f1643a154bf233ec60c02acd02c32088a97556207d2e4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a5907c61cf65126001feebd94c7a869eff95045106d97e21bf7f0d3de22caf9d\",\"dweb:/ipfs/QmPARkA7YpsBtd1F3JgszZREJk6TAkqRLBkjWZUadCu3sM\"]},\"lib/aave-v3-core/contracts/protocol/libraries/math/WadRayMath.sol\":{\"keccak256\":\"0x618fe1876e322a10269e4a96e61e516bbbec883cb79e20b508f8010027178f07\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d2814d57ad47ba13959bf9a108c25374828a370f8d64b5adb7564876927a3a06\",\"dweb:/ipfs/Qmf9xfz7svNZAzgUHUTAj6gVC7SHiT7S4obfo1Sg1Fwzbx\"]},\"lib/aave-v3-core/contracts/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x771cb99fd8519c974f7e12130387c4d9a997a6e8d0ac10e4303b842fe53efa88\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f41689d1d58bc13678c749bae8830f5a8b19b89cd135e962bf07d483350f828\",\"dweb:/ipfs/QmQSNGDxjYGqT1GU2CZzsWUTNcAtcfkg1jDGTH516nCAfN\"]},\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x0d4d7d19a052a2ef9d17b28450133631188b895e1755747fa8ad0280aadfb534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838551e10cc07e570b70aee1078e490658d3a0ab8f4adfd4f3f2a565200753da\",\"dweb:/ipfs/QmceT7R3Pqzywyxr3MSEA7VXU4axZAPS6BLy92iV97rGdG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0x374714bef85e753a13fdf792ca567ef734351029265f2cce8db533d7a942c740\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6024252b335cecf3bcf3502cfb883ffc7f8e72926734f848b0684eccaeac8027\",\"dweb:/ipfs/QmevY4P9E3eEDZ7msGJ5aFmbPGLWZr976g3EUwWeUs1JGV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0xe5775eb1fb17165cd191e8f8b2232dbea8765e7e610eaa3d6e52feead793ec5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://352614aea75c3d913cbcabb528be3d6c3335c3c77da41d59486a3193069dd095\",\"dweb:/ipfs/QmR3Nabxfme6tHrAMJCyK4MWZtpund2c4R7aFKmea3sGZM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf\",\"dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0x00c23b80f74717a6765b606001c5c633116020d488ee8f53600685b8200e4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73d0bd5ff47377a97d52149a805d82112f88c9f4ae853ef246a536bd31ce1da\",\"dweb:/ipfs/QmagG3Yup65JQPSMZScubYTCeyuUyvKLxBM3X1er6xWWxf\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x7b6690c21e94a45b825631a12581b40a753ea827de5ac9127a6b5833411317f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00045f2c18d7866618c65819fe180a9a9dab25c1974fab35069bdac9cf624b6b\",\"dweb:/ipfs/QmYk62QRqGHJ3rjqfEtbfEGFHWsenv5tNMbeMfq5HkTP44\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x41f6b3b9e030561e7896dbef372b499cc8d418a80c3884a4d65a68f2fdc7493a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80b0992a11b2fd1f75ced2971696d07bbd1d19ce6761dd50d8b6d48aa435f42a\",\"dweb:/ipfs/QmZDe5xd2gXHjVEjv9t8C1KQ68K5T8qFwdinwQgmP3rF3x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0xaad20f8713b5cd98114278482d5d91b9758f9727048527d582e8e88fd4901fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5396e8dbb000c2fada59b7d2093b9c7c870fd09413ab0fdaba45d882959c6244\",\"dweb:/ipfs/QmXQn5XckSiUsUBpMYuiFeqnojRX4rKa9jmgjCPeTuPmhh\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5d0c69ef32eae686acc22acfb1a54df9c91356e69adec593aa69eba83ae8f6f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7a9fca2cb3d802c4f8a2d0fda84ccc7f880264885801c7df08373501dd22282\",\"dweb:/ipfs/QmdtM2Loz9NzNTuQ3RXNQCPBjoPUJw35Ukpt1MSM9XH3cD\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xecd5f3c702f549fb88555e44e5f2415a4dfd6db09081aec7e98c26b6a3739c06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed40e907a6d80458a0556a609d0d3991d718c20f9f1f21475e5ec739af523231\",\"dweb:/ipfs/QmejkwADsZRxkusNU94sswMJfpLrbq8RkJTbNccUEQpc7Y\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0x4e64844c56061cd90e0a80de73534a9166704c43eed579eb83f90bc2780ce968\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://cba4fab5cebdddf644b901994a7f0f52b98885d4c56012f4dc51d52c2bf9de0e\",\"dweb:/ipfs/QmVyyrRmqXrAiapewWunRVgiPVFJHpH2hKiE1py1svMSNV\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolErrors.sol\":{\"keccak256\":\"0xf80abf13fb1fafc127ba4e792f240dd8ea7c8c893978cdfd8439c27fae9a037b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b04fc72a656bbf3631e9c2e67b9870a2d9d235185e833fe050e9606e6816a9aa\",\"dweb:/ipfs/QmUcz4bkEkJ9pwzFu1C3n97hBQ3st9U6qTAqCdyFwddKco\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x44fa2ce1182f6c2f6bead3d1737804bf7e112252ae86e0f2e92f9b8249603f43\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://54154e8665b98d65f5dc91b256551852cb47882180b501b260657122d207c0ea\",\"dweb:/ipfs/QmcfemK1A2PXYrWB5SBFGERpMCderbFRb8BtTzQDj1sUBp\"]},\"lib/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x7825565a4bb2a34a1dc96bbfead755785dfb0df8ef81bd934c43023689685645\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f44f4614d31e3d4864c7eb13620555253b84f6a69180f8745b7c6e246a9d125\",\"dweb:/ipfs/QmfNQUcXj3KL8h9u5PqbtEC6yRtwDbKNb48uMPjdwxsKnd\"]},\"lib/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x5c57de03a91cc2ec8939865dbbcb0197bb6c353b711075eefd8e0fca5e102129\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1e994c24fd891ef8a3f5dbf5eba42b34feaf05e0376a29f91322faa18054449c\",\"dweb:/ipfs/QmNdUJGUQxd1dPkMbnA5f5UNqakxRkQE5r7bTZJAuHeapS\"]},\"lib/v3-periphery/contracts/libraries/OracleLibrary.sol\":{\"keccak256\":\"0xe313f89c69c0f1c91f0722868313b4ceb14479b3e7a0abf52a1b9bbd9c18e81b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8ad09b061f3f533c116618c20cf01510108eebebb7ff8847b0f245b8ba368d53\",\"dweb:/ipfs/QmU6vdi5JjJfjK2KqonWvRg9NeuQWarj4B1YFN22Dh9VJM\"]},\"lib/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0xa72de315bd655a0fd5043ff97c7fd3868a1b5b1986afd75c6f5f8fd0f904985f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8838e68aba9caf2b2cb13bd4cb661b1f9c167cca4dfcd50ac72ae96691392df\",\"dweb:/ipfs/QmfLq3cmsSQTuLLxiF4bgceaf2jx8CoiVXQd7BZXGgJG1E\"]},\"src/collections/CollectionsManager.sol\":{\"keccak256\":\"0x6d136ee04db4f66ab3e7387bc95e418b803db2de2b9703bbf1fba131664abe9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b625170a5e0e5043401e35376d6b74ec5524dff17893f030dce5baa4d080585b\",\"dweb:/ipfs/QmdwAR7pfFjkwkMxVgJ9coAuQVNHLd55uAMsQ46roPJ16x\"]},\"src/collections/CollectionsManagerBase.sol\":{\"keccak256\":\"0xadd6127e50b9752bfcc5c5bd2a278f1d2d995f41f246690a174f87df36ac007b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f91184624c0119407f4908e327af6f6274a87dc8cccd34e7c8fb0ec59a8884\",\"dweb:/ipfs/QmTBNqr6mUUNbVc1kGurGCWMD8vZaeTTwJDoPSsGZt9LUG\"]},\"src/collections/actions/CollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0xf810cfde07165257f1939da7fbe845aaf9442d8a2c131a362a8945e3e764ab8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed9343183b5415f4881d01d20617cd0fd2c5030e78df4840be5f6e1530048635\",\"dweb:/ipfs/QmQF1TJrS9whZNAMnXq9vDL5TKBGGpLid4APq9uZwXsX6D\"]},\"src/collections/actions/CollectionsManagerUserActions.sol\":{\"keccak256\":\"0x21da34e960a401df867f5977ee5072014d9ce1c8ccf8db362b370c0516c44450\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5723cf6ce4b59694e3777df195a6707e7f563954aa2d2d26ac0d0fb0e0e6ec58\",\"dweb:/ipfs/QmSvhaf5ZT5tYzszaQTy2DTr4GJBRbduRo2kcst3pr6cqB\"]},\"src/collections/actions/CollectionsManagerView.sol\":{\"keccak256\":\"0x3bbe4d2f0051b3dc5e70f3284e6265a1334bba30081ff1d3469b80d400b0d853\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42a3ea79ae5741a42e60de436cfc36f94306c52dedc3d7574942a51513acb3c0\",\"dweb:/ipfs/QmSn48PLxYqAKkgVtYsoerLfFkZqyGusaE1qhAt34bFc1g\"]},\"src/collections/interfaces/ICollectionsManager.sol\":{\"keccak256\":\"0xf36eb32c1cf333628338639e1ffb9cad9cf8996a859a352af8cb6b2b781725a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77af02b46b40c96119a68de47edb7fb86bb040bfef2f0cd9d3b430bd10d34ff9\",\"dweb:/ipfs/QmXgH3jDkSK7EGjSQbgYGq1a8ozneEs4gBfvvoQxGVABHZ\"]},\"src/collections/interfaces/ICollectionsManagerCuratorActions.sol\":{\"keccak256\":\"0x7420c54515b8bd3ae387671d7ebc03cee304bffb68bea11388e6f993654c72be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5228ec9921301a2da45018f00a7dde6a152549cb1f08941e6612f444448baa84\",\"dweb:/ipfs/QmZpmzHiaW5X9TQ9Q7myAzBxpffBKh8Ty58Epj5s82AuMX\"]},\"src/collections/interfaces/ICollectionsManagerUserActions.sol\":{\"keccak256\":\"0x5eeaffedce45f266039fa0c14e150fa9b65cae668073872d362092b70a4bba36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ce96526ff03f209bdc824dc23a87c9270cd4a258c6e809397c21899301a575a\",\"dweb:/ipfs/QmNRFmXMGH3YWLXkqPFeSz9bgKrHBFKvH7yNJYKBS6bW2k\"]},\"src/collections/interfaces/ICollectionsManagerView.sol\":{\"keccak256\":\"0x3802e370d2ba7707f50aae8d85f8d5a5bb3496dc0379b3db3294facd0d75c0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://197a2965fef0b04dc2bc06783ff765af3c585678b348c1e4882e34b0a953d94e\",\"dweb:/ipfs/QmTGmm9i3JbNdGXGspv1pnKLCh9VoPyDM28Fx9XfYJoHrn\"]},\"src/factory/SizeFactory.sol\":{\"keccak256\":\"0x8d2daaededa98502d8a0baf4c47b355d2464b0723efa3509f339c1c007a3a48e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ebb3841dd94a1c4c19fd35e85b5445cf7cd2487c3a8935452971faf1ec6438a\",\"dweb:/ipfs/Qmbhsx88nx23EdSeRXjSwfXzAssLFirLXg1fGtB1HEuLW8\"]},\"src/factory/SizeFactoryEvents.sol\":{\"keccak256\":\"0xb7b88e0a135da948b2967a831ad58e41a3b76aef10218c5536a68713747e06e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e961239ba806f8516188e7cd29bebc1b56969dcab8d56888b088f88b8dc3d0ed\",\"dweb:/ipfs/QmWEpWix8pRoy1cY68hTKRb67xgYKPcYr1xkhskwSvh7zN\"]},\"src/factory/SizeFactoryOffchainGetters.sol\":{\"keccak256\":\"0xe028e68944288a9d6da293ce0658bfdc216163923952f6563aab504e5d63fef0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd20c9e992675269a7e103ab7cf94cff892ff71819fbf1b11c0564741d34ed8e\",\"dweb:/ipfs/QmVL6UKpSh3cDyEkbBPSdPsMuHHpcD9DJfH8mKEzWk2GKQ\"]},\"src/factory/SizeFactoryStorage.sol\":{\"keccak256\":\"0xfd4b5e9eeb19f77f4dcb00ac8efc97796fdaf34b0adb8309e6a6766f46ca57bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb886099bfe263bfe6f0748f03981131c621100a484022066e0b639ee53afd22\",\"dweb:/ipfs/QmXfGpNpPTbPL3DND2YqvcLymVcB36ks5s8bZf4ioPty96\"]},\"src/factory/interfaces/ISizeFactory.sol\":{\"keccak256\":\"0x0c7ee30a3e26cab285f78810a3684c8d91ea4d3c839f023b839144ec69d58780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6f58c02477567655a64a0106153a70fd8e20a42c572554c2d8768ec93ee74a5\",\"dweb:/ipfs/QmUZ9aNgjWMVKBk5B4LRwJmSUWZNpDcBsEw3AhYa1UffUV\"]},\"src/factory/interfaces/ISizeFactoryOffchainGetters.sol\":{\"keccak256\":\"0x01193f70622dd06fa303e488c255bf9b86f4fd2150ded107df75eabb1c200403\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81f74325395f6f3c01d55991aa3e8b2e26c3bd8d80b3e061f3c3d90bea81603d\",\"dweb:/ipfs/QmWKW2CQdeYgK1x5L6i9k43wJVYxu9Qy6QUJD5aFoykQ8p\"]},\"src/factory/interfaces/ISizeFactoryV1_7.sol\":{\"keccak256\":\"0x88d8fee7f821de312741e741fcd2867e55905159002ba4d8ced827778bebde29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42df9dfc39ad1b6812bb10c74d1398d3882e207e9611cb2e857187d7c79e09a\",\"dweb:/ipfs/QmTcbh5pZjV2S6zj5x3nzvRJBBsyy5DuNLRD4Dvg5Ydydq\"]},\"src/factory/interfaces/ISizeFactoryV1_8.sol\":{\"keccak256\":\"0xa5581ab63a25a418017ef89e0a381e5876ebd9d3153b190eb06094f20fbda619\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48520aea55bd1d7716d6146c24af0b957c4f8ba310b7595b81bf10c4e1c28578\",\"dweb:/ipfs/QmbUWrZNpYX32r8JJnhpYU8tSS6XqxgjFdtyzNaKxJBfHL\"]},\"src/factory/libraries/Authorization.sol\":{\"keccak256\":\"0xd0759b2d19d649ede38497e36b8569cc49518a8f70927476e0713971306ab304\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79f301289c5908529bcaddcf4e1c18da9625460315462d9eca21192e1d26468d\",\"dweb:/ipfs/QmZZSLLP9hxdAVAqDhrqcdjPFL6evNKMvxEzcWUCfJmAn5\"]},\"src/factory/libraries/MarketFactoryLibrary.sol\":{\"keccak256\":\"0x046488fb4d2f922a0abe8da38e7275f2dd45595f05dd0b8c83492b36e43f68b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b626fd900427f487fca13d43a4d2c29c1a1cb9b61fe3e984fb0189dd32d9c8e8\",\"dweb:/ipfs/QmQ5WrPHPf1F8C6u6XRCmjUvPXWt7i5Ae9Ltcw1kxuxFTC\"]},\"src/factory/libraries/NonTransferrableRebasingTokenVaultLibrary.sol\":{\"keccak256\":\"0x873041f677f5cdfc408d56042468798a95c01b939d963c85dbfec4d07ace8f20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a64d832039e563bb6bf47e6deb77308f340a3178e91bcdef7d66a5c770413b9d\",\"dweb:/ipfs/QmQi6DUK4t2t62ZRB7EbGaRo8tjDjBjYMMVQWUAwaGTsxb\"]},\"src/factory/libraries/PriceFeedFactoryLibrary.sol\":{\"keccak256\":\"0x9b8d42e68ddd8de063e11a611b2baf8124d60c3bd28de54a089053a2e3972611\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbf60207cac346bb51ccbed3b38adbac5e15427b489bdd73ae9689c7bac75dd9\",\"dweb:/ipfs/QmazRoKQkcPhCZQrtzaUitJYLTjj1U3pQ2FHKcNz26uVyE\"]},\"src/helpers/ReentrancyGuardUpgradeableWithViewModifier.sol\":{\"keccak256\":\"0x44e0afa8b79734db3eb0278c752f0c74daf37e21b342ef7963ad28cfa6eddef6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c08003c5aaa58665815eba32b562db37d98eee0df1478bde70d3cdea490d02d\",\"dweb:/ipfs/QmQTPFYN7RMHRtBW2StZQX6c1QmK9gZH3msxsDo1makpBz\"]},\"src/market/Size.sol\":{\"keccak256\":\"0xfd7ec5860b9bed4546925e5e82d87d3e889cf4f87c1d8e688b74e18b98e5f3ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acff4528e6ef06b4ae2a0e9c7b047d8007f76d125854ad77f827913f01ffaa5c\",\"dweb:/ipfs/QmRzNKUhpYAzgBWvsm1iGozhyKxXBmjzccaZ4rzGcBAvQm\"]},\"src/market/SizeStorage.sol\":{\"keccak256\":\"0xcbb653a667ff847b25dedcdefd77ceeb73539e58f1d3a3c5e0235f4f7027d7b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de6d2642e9cfcf23e2161d90c9a446f38dad849ed5405a52b6e829a63b45caf9\",\"dweb:/ipfs/QmRY4FeZ7kUQLUx9DYX9vCWmZzAzD95keSCeVZUf7tALHi\"]},\"src/market/SizeView.sol\":{\"keccak256\":\"0x72f41e7b7d9544b68e155351c3c21f56a0273c56e7529a1bee9396f119784030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71a9bc9daf45693598eff3b08e49f404dfc2efa0be4797e5470c22f058ea3718\",\"dweb:/ipfs/QmYgiUwaM1A2SHHsqjcTExtzvaH6sN9B5sru8ZweiJ5Wv4\"]},\"src/market/SizeViewData.sol\":{\"keccak256\":\"0x4fbd20e43987c211e0f8ab6ce467b4d017092a881ad544aa44a5d2f1d555df2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f4ada02248e1224356a5e1b4fce02c60e4f14c414052a09363e9803317eacf\",\"dweb:/ipfs/QmZ69LGdEoZWajqVWiHrDfctYmArkt9ZWMYARwX6htQQ7x\"]},\"src/market/interfaces/IMulticall.sol\":{\"keccak256\":\"0x6e37873de589b4bec14611f36d283ab797d149a2ea61be2d7f3ac32d503dbe41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88a1095d11f66268b50848a9868f28020583e8a4bb0d2885a59624c74e40f989\",\"dweb:/ipfs/QmSDYFNMkdriiJwn1crwmN4GGAsGCAMz89jaw3qAdALF7R\"]},\"src/market/interfaces/ISize.sol\":{\"keccak256\":\"0x124afa7a31aa6495975a98be40feb74591cf32bbe49d532e459b263f9cdc26ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c053783537613a5f7feacfd592aa1bf20f1e179e3585da4ad85e3fc3ca85507\",\"dweb:/ipfs/QmRbd68SUKxMZCuZS1jjnbYy4Q562MNdjxsucFxwT8zBdC\"]},\"src/market/interfaces/ISizeAdmin.sol\":{\"keccak256\":\"0xc4d3eca45501932692e471a063ae044a75c4554f22a074034cf0f5a332a670cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37acd1e3a79f29afcda3ad6bd199f0990054827ba19cc955b825315b3c5f1a95\",\"dweb:/ipfs/QmVs1pD82jrcGZkgYa2o5gkbQHpjhg6ssbQdZTDTu66fT5\"]},\"src/market/interfaces/ISizeView.sol\":{\"keccak256\":\"0xf34e38e63d35d793fa3c56d1bb732617f5e2e56b81f5319448d73ff5de7a0497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9a2cc5be5d3fbbb2bd9a722aedb3bf63cf97dafec3b4941035a5ea5129bc69\",\"dweb:/ipfs/QmNYiFubf2cqMKiwozvJgngMu3frneLsuTNv2xzikdAYw2\"]},\"src/market/interfaces/IWETH.sol\":{\"keccak256\":\"0x4f7e2b2d5033a819263abfafba2aa513dd9a25bb1ce21cfe497daa0ac4a9ec7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e209482985a7a680a0ffc2a6a6e3d0c1fb832db256dc1240c5b054fab19253e\",\"dweb:/ipfs/QmWQC9Qy3Mn9xfvM9xkcru9wcdTgq4jMjiJSbDtSMRfc9t\"]},\"src/market/interfaces/v1.7/ISizeV1_7.sol\":{\"keccak256\":\"0xf6dcf99539326bae7e1465eac7857f1a62d1d148d065510acea1a3f9a7e9d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87776d27879eb9e715f0b56ce5deb97f726b8018df831f2538563c3a8aa743c9\",\"dweb:/ipfs/QmdUwAo4orzYFXSogwjuZqnXGyrA3bZhpMVV4962E8ciSR\"]},\"src/market/interfaces/v1.8/ISizeV1_8.sol\":{\"keccak256\":\"0x539e339de13cfb2778f0b88e0962e72a0953f7ed41306815ba6da72f308ecbff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e5b98cdd5bc9107f4e890fd0c5ea6bfde4b5ffa803c72390a13579f4f81b114\",\"dweb:/ipfs/QmSQ7jXfUbhoScWLPwCkSaerqHxeBWmz6H1VVKtR8rYHhP\"]},\"src/market/interfaces/v1.8/ISizeViewV1_8.sol\":{\"keccak256\":\"0x25ce9dfa84f7a48195568808555684d9027d6b277691918a9269d84075c446de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0af34477c26cdee497c98a91d27fed7125752e7a5ed0a9f540b7f88eaa0b52fc\",\"dweb:/ipfs/QmaJf67ydi3WGc4VCA8TVYaXumRcMEjh2hEjTWNSGGS6mP\"]},\"src/market/libraries/AccountingLibrary.sol\":{\"keccak256\":\"0x7951928ccae855e9fabc380ad88075fee1822e00dadeeb969c5add0e7b1e9a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b895fa756fd379def6e9cb674a9618beeb7e7cc2f9708816cbafe36a56acd769\",\"dweb:/ipfs/QmbAg4HReEqmoJ23JrJpy7Rp2cgZA87VUgMrBFW3yr6Cp8\"]},\"src/market/libraries/Errors.sol\":{\"keccak256\":\"0xed73df3f39ba612c526ea09234b730cfdfa5ed399b279bb738fbfd5696b38bd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c0c78ee291a63f618a99ef99dfd2e6d2ff973f38a2b6fb92001a0a9c6329702\",\"dweb:/ipfs/QmQfuhKVMKebzmFYAN6EEDCWr7PpG884Xbqc6VL5XwVmuM\"]},\"src/market/libraries/Events.sol\":{\"keccak256\":\"0xce181000a07927aa14c59bc6d514b9829386610f4f6e8e987e7b577301707d60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfa93b9e1ea3b94e298657b38c8ded2f180296a8054d9593b37695644b075908\",\"dweb:/ipfs/QmZ2kyGivGEo5smxeHZ4BZsFNEuy2WanW6PFbJaLrFcFMo\"]},\"src/market/libraries/LoanLibrary.sol\":{\"keccak256\":\"0x40dcae0ebbfff42282a5ceb00b5698c882242e028740099bc5828a08fa7e77e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efb877878b973bb6e8913cc3c4f4948ca7a43d0036dc243862cc8de7a3e92384\",\"dweb:/ipfs/QmYt8p1H7gAyTExvnKV1Anhfnjk5o774yi4ibHGUxByExv\"]},\"src/market/libraries/Math.sol\":{\"keccak256\":\"0xa270b1631b8b469d0e4bfddfaa0bf87ee285fa7532e1ed31f28674356fce0e65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f0d027e9af0e81111d0b573c836502f94f5f0e5a3b5c0fc8ff025060e78bb53\",\"dweb:/ipfs/QmbS7Wnub3nmeo7yfeQht68MzWwMrQ3Ef7bUtiNtDMtXDx\"]},\"src/market/libraries/Multicall.sol\":{\"keccak256\":\"0xaf98fced0f94fce8f0c27d1f5160019eeb17e3eb67316ca245f52c39df257fa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://852c668a4f10a61c2ceba43aac27993869ae591b8479c88d5c71bd4760cab1b6\",\"dweb:/ipfs/Qmer5YE99KsLeSKXf1QLxeDcUcLNgYkjFRwHzvBuG7JtUp\"]},\"src/market/libraries/OfferLibrary.sol\":{\"keccak256\":\"0x55b32a6221d79312c857fa936342e229a74e440197e87603dfda8c57335c9401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9b3e4a528f8360c5ca36d66cfe1d60749613ccb722d1f7af91398bfbf397b9a\",\"dweb:/ipfs/QmRzh239xa5YHMrEWtAt4oCbzFdwNDqDgtz8EGZGiFqZW3\"]},\"src/market/libraries/RiskLibrary.sol\":{\"keccak256\":\"0xc639312f28fb460000aff9c0869ffb2c3bdaab5e6d5aff6895df6bc2d3461b7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4eb18a5f3fc5ecacc2a166e0f5c456246bcff32284d29fa14d819f7616c7718d\",\"dweb:/ipfs/QmR9aSvd6G1qmqTKvT21fHk8EVeKGjKysn34qpCFTXhKXz\"]},\"src/market/libraries/YieldCurveLibrary.sol\":{\"keccak256\":\"0x8d4b1f45d67387169c3b38cc034305eba91ad306dac7021d4658e3b8bbc9a135\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://438376203571e01cbb26ea58c192d3036a1e623c0c5897c52aeafaa90e281cd3\",\"dweb:/ipfs/QmcRNJKsudM9bZvCPCSEQWxPHvVEfQD1u2MPf8S33fh3o3\"]},\"src/market/libraries/actions/BuyCreditLimit.sol\":{\"keccak256\":\"0xccb77182ce62b7ea147ee65ad7e32076f9e565a2605c18842087103e471f79f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://571a3265ef2664d9fea268e229af1bc0e430f458efe6898a03532de799d959ef\",\"dweb:/ipfs/QmSA1hphKNeRdqKtKpbfM3yof9TTd13r9X5ei7jNiuhcwQ\"]},\"src/market/libraries/actions/BuyCreditMarket.sol\":{\"keccak256\":\"0x8bc8b7c8c274648d666d0e83e3605f1cbc02b63f283fb72485e32cb2c9fdb1d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dfd2009d13f1cd03d1eff41195c66617b51390d65d7c805c0bd3ef288b9a5925\",\"dweb:/ipfs/QmczwzFqX7vugWArcsLvjzGzCkBsRyyrv5s8nUkq2iAnHx\"]},\"src/market/libraries/actions/Claim.sol\":{\"keccak256\":\"0x0145b5a2bef3cb5b6348c0826a020eaaf8db1880bb7aa2804bf03cc16eaf2adf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de61cb5c77a1be1cc00990f8b21e1ad41005c811309244acb314d3e3f2324427\",\"dweb:/ipfs/QmVJJ8RgFXtNg3KLcevf99ZyhXQQtAH32i7MZXM1VLrbyd\"]},\"src/market/libraries/actions/Compensate.sol\":{\"keccak256\":\"0x5fa7ce8b74eeea09d12b78e3b31dbc7b37fca58b235299ad5d9f8e99ea400719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fbeff16ba76d1e3735f4d067ba16da7b0f35176ff9ea501a99f94063936bc5d\",\"dweb:/ipfs/QmYyogfmQmrpEksBc9uSjVQvYAWdaq31pJ3j6aAnc8D1rA\"]},\"src/market/libraries/actions/Deposit.sol\":{\"keccak256\":\"0x75e2039804c341b06705e712a8403350bf3860207178872eba02b12acc1a55e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76f871e1a3b6e9accffffac39be2a51d90cb16028511f0f54597bdb8e8c2c6fe\",\"dweb:/ipfs/QmNzQiqWUiVnqpL9EhyG9tbF36nksZJ3YeT3hNioQLCpwG\"]},\"src/market/libraries/actions/Initialize.sol\":{\"keccak256\":\"0xbad2d5f92aaeee28a87c1feda397f787cf1a2f8432bf05371f79b2309e9858f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c6959ee090add484fe99aa21bb8e879c36a97a1d00b4d49dfade775c4813a63\",\"dweb:/ipfs/QmZycV28jdCXWHy7QV7uqtqxaiReZaTYtvvgECuHb3gwJQ\"]},\"src/market/libraries/actions/Liquidate.sol\":{\"keccak256\":\"0x20e7ccfb443548a7325a592034bcfb6f474c313f9cf0453fafc45777a280d85f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec7a9075a20c68b7ca70c6b283692724d2e42faf0596187bd1075d8d7b6c03b1\",\"dweb:/ipfs/QmbHMZ2EmbhY4w51vWUkuEvr2r8XEkJkYvM56Tk5h1yr9G\"]},\"src/market/libraries/actions/LiquidateWithReplacement.sol\":{\"keccak256\":\"0xbf8028638ffc6a29e6b93a8f795ddbdfb5cb119c95c8c7bc0c446b3681514fca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f4db7ddad5d0e210fd133073ec80d63bdc7a6026ff74744fdc4aa83918b1230\",\"dweb:/ipfs/QmXSYimeiJRTx4sdBKZsPdY4HSDhK7gbsjB3bm596j7oT5\"]},\"src/market/libraries/actions/PartialRepay.sol\":{\"keccak256\":\"0xcca168dab87cf6c5a383340443041194ea3ca272aa48cdbe7ffcb263be767900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd4a81eeab2fbb3ac34e21fdfe3acf4cbae5802984ddd0eabcc4b5dcf5b80315\",\"dweb:/ipfs/QmVZ9wKB1vjGghXfCE3AFNGTiGLekqbLEELSdJ26eeXy3F\"]},\"src/market/libraries/actions/Repay.sol\":{\"keccak256\":\"0x8ce3d2f0cf14efb0489f509f244c05d8045ea5eecffceb2d932321d4f62a5474\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://773030fd26b7cd147d3c1c745a858e541dee98331c362de19e7c7f021be7c44e\",\"dweb:/ipfs/QmZ8Du3qDSdpM64JCD6PqfqQ4DtpcfaVX6ujiCEJhgUhX5\"]},\"src/market/libraries/actions/SelfLiquidate.sol\":{\"keccak256\":\"0x2d71cff942efc93fb7aa3a0a636e44562e0fa44ba4d503f323c6d08e7fdd8af3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdc43c74a42cffbf3844939df1d21a2b392ad3596ece8f1e9a6ebe08c2ec64be\",\"dweb:/ipfs/QmRUScCkvE4EADEUEvdwrsnzfLsq7xjFt1xsSZ4PZfs6J7\"]},\"src/market/libraries/actions/SellCreditLimit.sol\":{\"keccak256\":\"0xe8fe9ab69faccffa8539167973d13c5afe04ca8358316a092540171d084654b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c626cb1ad9347b0eabd162f590c61175cdc687958bc6684843201713c5efa89\",\"dweb:/ipfs/QmNqZc3Zh2Nvj6exvG89XShBY4WtBJSh6iKWr7gZB8sQ3k\"]},\"src/market/libraries/actions/SellCreditMarket.sol\":{\"keccak256\":\"0xf4bd799bb7cf51c565d530ff42cebf0a3b1d2b01a783f484c3ffda112eca962d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a7d0d213d6c00b09f7508887541968939a960a86160f6812143bff9c07ecf86\",\"dweb:/ipfs/QmRafSq5sVAsmpttMGWM1FJJz9Gg1bTrVthP6k2Jppe9gr\"]},\"src/market/libraries/actions/SetCopyLimitOrderConfigs.sol\":{\"keccak256\":\"0x8f6f00418e9f62d99e316097724d50ae10369fc9049b1c5caff7d219410cc79e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36222343f8752b105bd7414e53281f30cdd1aa3ca45539dcfb5fe22d6eb5fdde\",\"dweb:/ipfs/QmRCpmVtGTXnRUUR5wPGjW1oSPg8PRcP39Sigfyt4YkXyG\"]},\"src/market/libraries/actions/SetUserConfiguration.sol\":{\"keccak256\":\"0x914026fea966b75688fe25a3ac2782a426134ebceb3f1b1719e650f2317dd04e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb5a25ca819ecf4137af74c23829aaf2d784b868e710f4b563378481426dd4a\",\"dweb:/ipfs/QmUTdYB2zr3gDaJ9Qj8ma8RypzdKDAeKWj1UwCS8MmnRrP\"]},\"src/market/libraries/actions/SetVault.sol\":{\"keccak256\":\"0xa9fd4994702f7dc36369fbfb3f7a3ed767b36619bf28471d7d7098aabca62dab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7eb78f54189a5ab0247264303eea0e576d9aa8a1ea3d81e3e4aefe1baef13a0\",\"dweb:/ipfs/Qmf7DVjjGGRDC4UY1tzLztwG6pEsutWGxiZ2ve1czCE93S\"]},\"src/market/libraries/actions/UpdateConfig.sol\":{\"keccak256\":\"0x040b1b2b4dfb446b50bce809c070a3b977e7c614f2bfdf632b10f9c89ec8d80e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://067a98624ca328a30debcd8d09adb675ad3ebeafe0829269ca5f42574babcca3\",\"dweb:/ipfs/QmU3K7oJnmknBtCyVNR6d2fLsUFCPvozr1DvY9W42cw1Eu\"]},\"src/market/libraries/actions/Withdraw.sol\":{\"keccak256\":\"0x1c0692507acd9052c4831b4a78fd6a7d54b7ab9743bf49e170441abdd5694247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1de43235c6ac35a2a752173ab67346feb750948d2091efd20053f051d7baa9\",\"dweb:/ipfs/QmXtbxAzykvnBSRuDWSFYybL6V7pqGwhjCGhkKQhSeb59i\"]},\"src/market/token/NonTransferrableRebasingTokenVault.sol\":{\"keccak256\":\"0x9178cafae5e58ebdaa1121fc7548514fc2e2b847ff1b375e42a968bef415ab30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c46fe4fccc7608958715b333f3ef8c3ec4a571c30ddb4650ac4651ff55357745\",\"dweb:/ipfs/QmUBKJwNUacfmRG6p6PFYQssKf6gCCt7dvmqDbnL3KsT7g\"]},\"src/market/token/NonTransferrableToken.sol\":{\"keccak256\":\"0xf82118604ddbcd5d9ff708d739396e993d9621cff7b07f22a519141ca39a9e17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f371fb37a2ac76630302b1284d62e8657f038b504ce9884723574c2a3de32ec\",\"dweb:/ipfs/QmRsjmBirftC8Jih4jBG2BoJmpe4RRAAsEwsmtLjWicTVf\"]},\"src/market/token/adapters/IAaveAdapter.sol\":{\"keccak256\":\"0xd88333fa5a565a78d2fbdf408f2ff89b69f900bd13ae84e1b102f1a1527c1777\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1890c9632e9fa607c74524da6049080fe42bde8fdc6117136e12e2277dbac02e\",\"dweb:/ipfs/QmSD6udpnnRsXoqk6yHxjKpDxiQgmoxQTj3CoXrP64bxKd\"]},\"src/market/token/adapters/IAdapter.sol\":{\"keccak256\":\"0x579f476cae67f70982f6d158f90490ccacb37c88d4c9e4318ccee9be0d3ff692\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80e9fc7d1fa0dfa85846e80a7ba766c68a39310c604d326f547f9278c2943574\",\"dweb:/ipfs/QmS1fNU7hrH21a2ZusfxMqaQvtzAgbdJkcbfw8ps3QB5oQ\"]},\"src/oracle/IPriceFeed.sol\":{\"keccak256\":\"0x7ec983afe56cc8eee5d4b3573a51665ad0cfc8835f8fb8fd864b2a5a119f9a90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02fc706986c7c132d4b0b95ec2f7b3aa49def6511ebe84643ee1359b2318da48\",\"dweb:/ipfs/QmQCwub8SCenVvQnVtL24Eny3jNZrugoxKsu86da55nBKJ\"]},\"src/oracle/adapters/ChainlinkPriceFeed.sol\":{\"keccak256\":\"0x71a4ccb7d9469f4d7a914a81c754b1278152a387f8154e0f9793e0e3d010a599\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d953653f6481b344d0d00a677a8301f3006a50c3b90744c39cd3eda6f508818b\",\"dweb:/ipfs/QmYR1RvdMboMpH9ykJN5WwuC3AabSvPS2JA4t4afxa7gyh\"]},\"src/oracle/adapters/ChainlinkSequencerUptimeFeed.sol\":{\"keccak256\":\"0x3d200d7fcc7c457a201f2bb32a0b68ea13b2b697cb300bbd587828bff5ffe8b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d72923e346e73eb0d42d055437dc6df059c3a8f27b08ff5aacd7cf7fdf90eec5\",\"dweb:/ipfs/QmPYENtSCwseMxYtQeKAkVe8DuCJYzRGpFRxDgw85xf2g8\"]},\"src/oracle/adapters/UniswapV3PriceFeed.sol\":{\"keccak256\":\"0x84027f9673163df8f7dcbd7c828cf5bada6a9c7de1986d3821ec75004a11f639\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0caf13ef11f4ad681f395ee48145d72fcd3a1eae5b439efb132be9cccd8f1243\",\"dweb:/ipfs/QmdrnR1auzKaQhZ7AqWRKHnajw1Y6oLmdNFYJzKLzb5E72\"]},\"src/oracle/v1.5.1/PriceFeed.sol\":{\"keccak256\":\"0x36473f98f23968eaab386e44c1404652c7ef88c09db9772ab3195d8305829762\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5db471c144f3a43e9e07391890e7b29e39b64ae3fb0e73b66dd313801b03542a\",\"dweb:/ipfs/Qmf5GMB6SdKNCUPCbV4nYmxUjg6z3iKiweYU2ajY9BrGbC\"]},\"src/oracle/v1.5.2/IPriceFeedV1_5_2.sol\":{\"keccak256\":\"0x24fbee1fe53fab416e870b8a277bf4c667fce042ad6ff4a7ca4bae7b123625bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d83b28b7f9bca0eb42758c8a75ddc86315b637d734342e532f8ffeda2c772fdd\",\"dweb:/ipfs/QmfAk6FJvMYgTSPcuDt3ZDn4XvKmtXLdmuY5kgJ8vb74YP\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.23+commit.f704f362" }, "language": "Solidity", @@ -1174,6 +1283,19 @@ { "inputs": [], "type": "error", "name": "InvalidInitialization" }, { "inputs": [], "type": "error", "name": "NULL_ADDRESS" }, { "inputs": [], "type": "error", "name": "NotInitializing" }, + { + "inputs": [ + { "internalType": "address", "name": "account", "type": "address" }, + { + "internalType": "address", + "name": "onBehalfOf", + "type": "address" + }, + { "internalType": "uint8", "name": "action", "type": "uint8" } + ], + "type": "error", + "name": "UNAUTHORIZED_ACTION" + }, { "inputs": [], "type": "error", @@ -1995,20 +2117,6 @@ { "internalType": "address", "name": "", "type": "address" } ] }, - { - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "bytes", "name": "", "type": "bytes" } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "onERC721Received", - "outputs": [ - { "internalType": "bytes4", "name": "", "type": "bytes4" } - ] - }, { "inputs": [], "stateMutability": "view", @@ -2018,38 +2126,6 @@ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, - { - "inputs": [ - { - "internalType": "contract ICollectionsManager", - "name": "_collectionsManager", - "type": "address" - }, - { - "internalType": "address[]", - "name": "_users", - "type": "address[]" - }, - { - "internalType": "address", - "name": "_curator", - "type": "address" - }, - { - "internalType": "address", - "name": "_rateProvider", - "type": "address" - }, - { - "internalType": "contract ISize[]", - "name": "_collectionMarkets", - "type": "address[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "reinitialize" - }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, @@ -2131,6 +2207,163 @@ "type": "function", "name": "setSizeImplementation" }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionId", + "type": "uint256" + }, + { + "internalType": "struct CopyLimitOrderConfig", + "name": "copyLoanOfferConfig", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "minTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxAPR", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "offsetAPR", + "type": "int256" + } + ] + }, + { + "internalType": "struct CopyLimitOrderConfig", + "name": "copyBorrowOfferConfig", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "minTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxAPR", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "offsetAPR", + "type": "int256" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setUserCollectionCopyLimitOrderConfigs" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionId", + "type": "uint256" + }, + { + "internalType": "struct CopyLimitOrderConfig", + "name": "copyLoanOfferConfig", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "minTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxAPR", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "offsetAPR", + "type": "int256" + } + ] + }, + { + "internalType": "struct CopyLimitOrderConfig", + "name": "copyBorrowOfferConfig", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "minTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTenor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxAPR", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "offsetAPR", + "type": "int256" + } + ] + }, + { + "internalType": "address", + "name": "onBehalfOf", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setUserCollectionCopyLimitOrderConfigsOnBehalfOf" + }, { "inputs": [], "stateMutability": "view", @@ -2152,6 +2385,23 @@ "type": "function", "name": "subscribeToCollections" }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "collectionIds", + "type": "uint256[]" + }, + { + "internalType": "address", + "name": "onBehalfOf", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "subscribeToCollectionsOnBehalfOf" + }, { "inputs": [ { @@ -2177,6 +2427,23 @@ "type": "function", "name": "unsubscribeFromCollections" }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "collectionIds", + "type": "uint256[]" + }, + { + "internalType": "address", + "name": "onBehalfOf", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "unsubscribeFromCollectionsOnBehalfOf" + }, { "inputs": [ { @@ -2307,22 +2574,9 @@ "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", "details": "Receives and executes a batch of function calls on this contract." }, - "onERC721Received(address,address,uint256,bytes)": { - "details": "See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`." - }, "proxiableUUID()": { "details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." }, - "reinitialize(address,address[],address,address,address[])": { - "details": "Before v1.8, users could copy rate providers directly through `copyLimitOrders`. In v1.8, this method was deprecated in favor of collections. The `reinitialize` function serves as a migration path for users who are following the only off-chain collection currently offered by Size. On mainnet, there are no off-chain collections. On Base, there is only one off-chain collection. Although users could theoretically DoS/grief the reinitialization process by sybil copying the rate provider with multiple accounts, these addresses are filtered on the backend by liquidity, so this is not a concern.", - "params": { - "_collectionMarkets": "The markets for the collection", - "_collectionsManager": "The collections manager contract", - "_curator": "The curator that will receive the collection", - "_rateProvider": "The rate provider", - "_users": "The users to reinitialize the factory for" - } - }, "renounceRole(bytes32,address)": { "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event." }, @@ -2344,6 +2598,12 @@ "setSizeImplementation(address)": { "params": { "_sizeImplementation": "The new size implementation" } }, + "setUserCollectionCopyLimitOrderConfigs(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": { + "details": "Added in v1.8.1" + }, + "setUserCollectionCopyLimitOrderConfigsOnBehalfOf(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256),address)": { + "details": "Added in v1.8.1" + }, "subscribeToCollections(uint256[])": { "params": { "collectionIds": "The collection ids to subscribe to" } }, @@ -2407,9 +2667,6 @@ "isMarket(address)": { "notice": "Check if an address is a registered market" }, - "reinitialize(address,address[],address,address,address[])": { - "notice": "Reinitialize the factory" - }, "revokeAllAuthorizations()": { "notice": "Revoke all authorizations for the `msg.sender` account" }, @@ -2422,12 +2679,24 @@ "setSizeImplementation(address)": { "notice": "Set the size implementation" }, + "setUserCollectionCopyLimitOrderConfigs(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": { + "notice": "Set the copy limit order configs for a user and collection" + }, + "setUserCollectionCopyLimitOrderConfigsOnBehalfOf(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256),address)": { + "notice": "Same as `setUserCollectionCopyLimitOrderConfigs` but `onBehalfOf`" + }, "subscribeToCollections(uint256[])": { "notice": "Subscribe to collections" }, + "subscribeToCollectionsOnBehalfOf(uint256[],address)": { + "notice": "Same as `subscribeToCollections` but `onBehalfOf`" + }, "unsubscribeFromCollections(uint256[])": { "notice": "Unsubscribe from collections" }, + "unsubscribeFromCollectionsOnBehalfOf(uint256[],address)": { + "notice": "Same as `unsubscribeFromCollections` but `onBehalfOf`" + }, "version()": { "notice": "Get the version of the size factory" } }, "version": 1 @@ -2448,6 +2717,7 @@ "@script/=script/", "@solady/=lib/solady/", "@solidity-http/=lib/solidity-http/src/", + "@solmate/=lib/solmate/", "@src/=src/", "@tenderly-utils/=lib/tenderly-utils/src/", "@test/=test/", @@ -2458,10 +2728,11 @@ "aave-v3-core/=lib/aave-v3-core/", "chainlink/=lib/chainlink/contracts/", "chimera/=lib/chimera/src/", - "ds-test/=lib/solady/lib/ds-test/src/", + "ds-test/=lib/solmate/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/halmos-cheatcodes/src/", + "halmos-helpers-lib/=lib/halmos-helpers-lib/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "pendle-core-v2-public/=lib/pendle-core-v2-public/contracts/", @@ -2471,7 +2742,10 @@ "solady/=lib/solady/", "solidity-http/=lib/solidity-http/src/", "solidity-stringutils/=lib/solidity-http/lib/solidity-stringutils/", - "solmate/=lib/properties/lib/solmate/src/", + "solmate/auth/=lib/solmate/src/auth/", + "solmate/mixins/=lib/solmate/src/tokens/", + "solmate/tokens/=lib/solmate/src/tokens/", + "solmate/utils/=lib/solmate/src/utils/", "tenderly-utils/=lib/tenderly-utils/src/", "v3-core/=lib/v3-core/contracts/", "v3-periphery/=lib/v3-periphery/contracts/" @@ -2643,6 +2917,14 @@ ], "license": "MIT" }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol": { + "keccak256": "0x361126a17677994081cd9cb69c3f50cffff6e920d25cb7e428acdb1ae41d1866", + "urls": [ + "bzz-raw://19ae787a7dd001269cd60a394b1a5261b78925a0fc3a6f927beb2986a9aa56cf", + "dweb:/ipfs/QmYLfXiuKmcRgTDBEDXMMjXU8t6JxsspUmjxYzqWS55oEv" + ], + "license": "MIT" + }, "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol": { "keccak256": "0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab", "urls": [ @@ -3076,34 +3358,34 @@ "license": "MIT" }, "src/collections/CollectionsManagerBase.sol": { - "keccak256": "0x6f48eee8183e7d07e39f06c463d0da0be5383d2c4df0ad9015354ea80868a12c", + "keccak256": "0xadd6127e50b9752bfcc5c5bd2a278f1d2d995f41f246690a174f87df36ac007b", "urls": [ - "bzz-raw://f4627902e85711e9d7970da4e844b6c980e9c57e8a994621634c38dad777b4ee", - "dweb:/ipfs/QmNa2582FHgAFcm2M2zNdJZxyBiQFHAveGbobY7UqHAd4K" + "bzz-raw://a8f91184624c0119407f4908e327af6f6274a87dc8cccd34e7c8fb0ec59a8884", + "dweb:/ipfs/QmTBNqr6mUUNbVc1kGurGCWMD8vZaeTTwJDoPSsGZt9LUG" ], "license": "MIT" }, "src/collections/actions/CollectionsManagerCuratorActions.sol": { - "keccak256": "0xe716bf4597091cfcae5c5039711d331f999f3935510a5de1e61d70dcdb60822a", + "keccak256": "0xf810cfde07165257f1939da7fbe845aaf9442d8a2c131a362a8945e3e764ab8d", "urls": [ - "bzz-raw://903d3fc048e7756023e37a9069af0d732fa6f3670a94e765dff66077028fbe9c", - "dweb:/ipfs/QmafzQXAnrpHkt4yk7a5V41QaqejEm2MjFVXnSTR4UdzCj" + "bzz-raw://ed9343183b5415f4881d01d20617cd0fd2c5030e78df4840be5f6e1530048635", + "dweb:/ipfs/QmQF1TJrS9whZNAMnXq9vDL5TKBGGpLid4APq9uZwXsX6D" ], "license": "MIT" }, "src/collections/actions/CollectionsManagerUserActions.sol": { - "keccak256": "0x4d961355fadf16e0d5a2b848ad466bd0039f9c508322bbbe29883346333412b1", + "keccak256": "0x21da34e960a401df867f5977ee5072014d9ce1c8ccf8db362b370c0516c44450", "urls": [ - "bzz-raw://4f8fb10f5247f6feb1dc8e0b0adad1dce345ca2bc709fdf0daeca0149c5e4029", - "dweb:/ipfs/QmTqCbqE3MqXWG4CeLsbjNMmvjZVAym9SrzSeiDVEQ5vWW" + "bzz-raw://5723cf6ce4b59694e3777df195a6707e7f563954aa2d2d26ac0d0fb0e0e6ec58", + "dweb:/ipfs/QmSvhaf5ZT5tYzszaQTy2DTr4GJBRbduRo2kcst3pr6cqB" ], "license": "MIT" }, "src/collections/actions/CollectionsManagerView.sol": { - "keccak256": "0x65b623634495054d58d550d8593f74362c937d4e3f178cdcc2abb49bc4c4ff09", + "keccak256": "0x3bbe4d2f0051b3dc5e70f3284e6265a1334bba30081ff1d3469b80d400b0d853", "urls": [ - "bzz-raw://334c5a9970c22ce7036720000827d374029d065e97031e56c9bf702fae11dbe7", - "dweb:/ipfs/QmTCXsDc1NoYtdTqaLgV2f5qF46eXdF8KN1fWHqjPFfKde" + "bzz-raw://42a3ea79ae5741a42e60de436cfc36f94306c52dedc3d7574942a51513acb3c0", + "dweb:/ipfs/QmSn48PLxYqAKkgVtYsoerLfFkZqyGusaE1qhAt34bFc1g" ], "license": "MIT" }, @@ -3116,34 +3398,34 @@ "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerCuratorActions.sol": { - "keccak256": "0xf04a0cd0a4b55d018150f2503db4847c60616ee74f87b970ef974079d228c214", + "keccak256": "0x7420c54515b8bd3ae387671d7ebc03cee304bffb68bea11388e6f993654c72be", "urls": [ - "bzz-raw://09b837a6f5199ed958c07f67a43b2594a1437535bffe18c024b28596c36e4d97", - "dweb:/ipfs/QmUBjXk8XfiJQV3EHsotzNkQMwcY1SoFAh5HXafXobSeUm" + "bzz-raw://5228ec9921301a2da45018f00a7dde6a152549cb1f08941e6612f444448baa84", + "dweb:/ipfs/QmZpmzHiaW5X9TQ9Q7myAzBxpffBKh8Ty58Epj5s82AuMX" ], "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerUserActions.sol": { - "keccak256": "0x552b44f8d5735c65ecf42884d51257087bbfcd2c3feccf1f63fa5adc53984ff8", + "keccak256": "0x5eeaffedce45f266039fa0c14e150fa9b65cae668073872d362092b70a4bba36", "urls": [ - "bzz-raw://66e4ec097f1e67e2c36117eaff4bb5de858a6f08c7dccacf25453df673eccde9", - "dweb:/ipfs/Qmdmw2dJzKFdBmATxhtCAsLqHN7igEmVQGTBuonRXHm5K9" + "bzz-raw://5ce96526ff03f209bdc824dc23a87c9270cd4a258c6e809397c21899301a575a", + "dweb:/ipfs/QmNRFmXMGH3YWLXkqPFeSz9bgKrHBFKvH7yNJYKBS6bW2k" ], "license": "MIT" }, "src/collections/interfaces/ICollectionsManagerView.sol": { - "keccak256": "0x3122f5f96caf4125f5841e2c38339ef3589d956c44bdf3028a0f083fc8719dce", + "keccak256": "0x3802e370d2ba7707f50aae8d85f8d5a5bb3496dc0379b3db3294facd0d75c0f5", "urls": [ - "bzz-raw://4d6fe2a9b4f75c2a0bab02559c1e298f75154a91706595a3988f72ae893c09d8", - "dweb:/ipfs/QmaKAc7aR4nvwtbBy5U6kxDF9zHeisEYVfeHxzMcuLy6py" + "bzz-raw://197a2965fef0b04dc2bc06783ff765af3c585678b348c1e4882e34b0a953d94e", + "dweb:/ipfs/QmTGmm9i3JbNdGXGspv1pnKLCh9VoPyDM28Fx9XfYJoHrn" ], "license": "MIT" }, "src/factory/SizeFactory.sol": { - "keccak256": "0xc12066199c05f688ddf7843f46b3897887cfd5d275b50c629144de36a909f61c", + "keccak256": "0x8d2daaededa98502d8a0baf4c47b355d2464b0723efa3509f339c1c007a3a48e", "urls": [ - "bzz-raw://1794a576e3fa45a11a604f309795c259f4e27625a13bf29df00ad132fa532bf2", - "dweb:/ipfs/QmeWMYfdoaVb5iuoqWGHD6LY799w2QUHbtDtSJvAhWHR5p" + "bzz-raw://3ebb3841dd94a1c4c19fd35e85b5445cf7cd2487c3a8935452971faf1ec6438a", + "dweb:/ipfs/Qmbhsx88nx23EdSeRXjSwfXzAssLFirLXg1fGtB1HEuLW8" ], "license": "MIT" }, @@ -3196,18 +3478,18 @@ "license": "MIT" }, "src/factory/interfaces/ISizeFactoryV1_8.sol": { - "keccak256": "0x4bfa5ade9c609d5fa3d3ebe4f01e9b285d7a1ae16e6c7d8a671d23f911b8fbe5", + "keccak256": "0xa5581ab63a25a418017ef89e0a381e5876ebd9d3153b190eb06094f20fbda619", "urls": [ - "bzz-raw://9b23af69a7949c34386a4b5268dbe773725f0343665e3422121fe0160566f90b", - "dweb:/ipfs/QmRovMzxG4jAF13JMqgbrtAuSBZFbdoaNtRmsAEVvcYjBX" + "bzz-raw://48520aea55bd1d7716d6146c24af0b957c4f8ba310b7595b81bf10c4e1c28578", + "dweb:/ipfs/QmbUWrZNpYX32r8JJnhpYU8tSS6XqxgjFdtyzNaKxJBfHL" ], "license": "MIT" }, "src/factory/libraries/Authorization.sol": { - "keccak256": "0xf42a6c9392e33ad8d3be9045864c896a1552b4c3e4775198b990ea0b165f8908", + "keccak256": "0xd0759b2d19d649ede38497e36b8569cc49518a8f70927476e0713971306ab304", "urls": [ - "bzz-raw://02603db5e7c1b4df6b1f474e24fbd3b82e33e46deb84de07d0222bb26d2781af", - "dweb:/ipfs/QmaDuJawdoxgvVvMerZW8CMQZXKJPXhuH4RASMTfuMJX96" + "bzz-raw://79f301289c5908529bcaddcf4e1c18da9625460315462d9eca21192e1d26468d", + "dweb:/ipfs/QmZZSLLP9hxdAVAqDhrqcdjPFL6evNKMvxEzcWUCfJmAn5" ], "license": "MIT" }, @@ -3235,27 +3517,35 @@ ], "license": "MIT" }, + "src/helpers/ReentrancyGuardUpgradeableWithViewModifier.sol": { + "keccak256": "0x44e0afa8b79734db3eb0278c752f0c74daf37e21b342ef7963ad28cfa6eddef6", + "urls": [ + "bzz-raw://8c08003c5aaa58665815eba32b562db37d98eee0df1478bde70d3cdea490d02d", + "dweb:/ipfs/QmQTPFYN7RMHRtBW2StZQX6c1QmK9gZH3msxsDo1makpBz" + ], + "license": "MIT" + }, "src/market/Size.sol": { - "keccak256": "0x4f3acefe6bae9f645b20c6c77c0ce0e86b4098fbf5f347a01a1e850d03cc1da0", + "keccak256": "0xfd7ec5860b9bed4546925e5e82d87d3e889cf4f87c1d8e688b74e18b98e5f3ac", "urls": [ - "bzz-raw://be134c52dafbb876aba662c516de6b515fa7bc34c7b01038c44ba901ab1a713d", - "dweb:/ipfs/QmUwL8WAC5MA1peyZ4HTdxGTrhevf1cx1tSHMQtCJ8ee17" + "bzz-raw://acff4528e6ef06b4ae2a0e9c7b047d8007f76d125854ad77f827913f01ffaa5c", + "dweb:/ipfs/QmRzNKUhpYAzgBWvsm1iGozhyKxXBmjzccaZ4rzGcBAvQm" ], "license": "MIT" }, "src/market/SizeStorage.sol": { - "keccak256": "0x221b1433eadc854eb92d00f8c9c2b2240cf13010e59f11d117adbae0f44b8292", + "keccak256": "0xcbb653a667ff847b25dedcdefd77ceeb73539e58f1d3a3c5e0235f4f7027d7b6", "urls": [ - "bzz-raw://b3de7469241243203c5e033e1585094a18e01cf085a0df55abaa9b07fa3b0ab5", - "dweb:/ipfs/QmNrzYBgJD87LZJSd4St71nqfQRJBjRKpicx7PYDsdeufa" + "bzz-raw://de6d2642e9cfcf23e2161d90c9a446f38dad849ed5405a52b6e829a63b45caf9", + "dweb:/ipfs/QmRY4FeZ7kUQLUx9DYX9vCWmZzAzD95keSCeVZUf7tALHi" ], "license": "MIT" }, "src/market/SizeView.sol": { - "keccak256": "0xa18c08740f1d7931046651ec17f448e4e8ec955c739102625387db3ae2470ff0", + "keccak256": "0x72f41e7b7d9544b68e155351c3c21f56a0273c56e7529a1bee9396f119784030", "urls": [ - "bzz-raw://7b7af5d689040a8edb0f2603ff56063cfbf7101ea5f9c9be4bd1edea0e5133a2", - "dweb:/ipfs/QmP2s3af9UrT8Ap36Vatfsdd1uN5S65n5EvCZJ8RpWb6mk" + "bzz-raw://71a9bc9daf45693598eff3b08e49f404dfc2efa0be4797e5470c22f058ea3718", + "dweb:/ipfs/QmYgiUwaM1A2SHHsqjcTExtzvaH6sN9B5sru8ZweiJ5Wv4" ], "license": "MIT" }, @@ -3276,26 +3566,26 @@ "license": "MIT" }, "src/market/interfaces/ISize.sol": { - "keccak256": "0x40b4880fd0c38a481657cc850edee8c0e76df6b36c86fda08db9704089aaa142", + "keccak256": "0x124afa7a31aa6495975a98be40feb74591cf32bbe49d532e459b263f9cdc26ea", "urls": [ - "bzz-raw://2725d31deb88142806b1932c94a2fe7a29f4342e4d30ce10f789c83706c17912", - "dweb:/ipfs/QmQfruVNCbhsNZDftExivWc8gGmSGfPNLKjDHrEAWUwe1m" + "bzz-raw://4c053783537613a5f7feacfd592aa1bf20f1e179e3585da4ad85e3fc3ca85507", + "dweb:/ipfs/QmRbd68SUKxMZCuZS1jjnbYy4Q562MNdjxsucFxwT8zBdC" ], "license": "MIT" }, "src/market/interfaces/ISizeAdmin.sol": { - "keccak256": "0x1f2fda9cf43a960e920186ce0414d596f0c73e20e0ab262a047ffcab5b8a4a9c", + "keccak256": "0xc4d3eca45501932692e471a063ae044a75c4554f22a074034cf0f5a332a670cc", "urls": [ - "bzz-raw://092faa4adc6268f096580faebcf426c87def65e02525abfecd04aa1acfceaa88", - "dweb:/ipfs/QmWtjocrjvMRqKH47XiP7GKPRPKPCX3ApnpgpFjt3X9eRf" + "bzz-raw://37acd1e3a79f29afcda3ad6bd199f0990054827ba19cc955b825315b3c5f1a95", + "dweb:/ipfs/QmVs1pD82jrcGZkgYa2o5gkbQHpjhg6ssbQdZTDTu66fT5" ], "license": "MIT" }, "src/market/interfaces/ISizeView.sol": { - "keccak256": "0xb3c51331a555a1525c7d011cc732d6d5658eb77d55d289382b00c125d3ba7617", + "keccak256": "0xf34e38e63d35d793fa3c56d1bb732617f5e2e56b81f5319448d73ff5de7a0497", "urls": [ - "bzz-raw://5b6e78c75a3c09096562538c3000cda5d9d1771799a4eb9c5b4511b6c1ba2a9b", - "dweb:/ipfs/QmPiFHxx5BCmwyiCKMEgERMLQit7CqoQsCTwMKVBjSdrjZ" + "bzz-raw://2c9a2cc5be5d3fbbb2bd9a722aedb3bf63cf97dafec3b4941035a5ea5129bc69", + "dweb:/ipfs/QmNYiFubf2cqMKiwozvJgngMu3frneLsuTNv2xzikdAYw2" ], "license": "MIT" }, @@ -3308,26 +3598,26 @@ "license": "MIT" }, "src/market/interfaces/v1.7/ISizeV1_7.sol": { - "keccak256": "0xd884198d67b3d0d77fd5cc30ae96f18f0748b7f540704c130b7b163982d57e83", + "keccak256": "0xf6dcf99539326bae7e1465eac7857f1a62d1d148d065510acea1a3f9a7e9d572", "urls": [ - "bzz-raw://6948005cacbd6c490a8d158a9d8972b4baf0a05e1715d6c790b6d1f42f0d9b47", - "dweb:/ipfs/Qmcp2Atca3wK2V1cyMdKLgBQkTPdYjeXqM5zjw3aF3KCdc" + "bzz-raw://87776d27879eb9e715f0b56ce5deb97f726b8018df831f2538563c3a8aa743c9", + "dweb:/ipfs/QmdUwAo4orzYFXSogwjuZqnXGyrA3bZhpMVV4962E8ciSR" ], "license": "MIT" }, - "src/market/interfaces/v1.7/ISizeViewV1_7.sol": { - "keccak256": "0x1ae3e0e566182a39cea1e4a4b2f3ba8e47c9c5dc8aeed24fd5a90d35a5dd317e", + "src/market/interfaces/v1.8/ISizeV1_8.sol": { + "keccak256": "0x539e339de13cfb2778f0b88e0962e72a0953f7ed41306815ba6da72f308ecbff", "urls": [ - "bzz-raw://3c79e7a02e98992bca9e5bc5eb4513100b557f511b1cb0245f7838e12e87efeb", - "dweb:/ipfs/QmPZDziwpJsReTqbzF7JiWntq4XitinnAJjDd393ePRB6T" + "bzz-raw://0e5b98cdd5bc9107f4e890fd0c5ea6bfde4b5ffa803c72390a13579f4f81b114", + "dweb:/ipfs/QmSQ7jXfUbhoScWLPwCkSaerqHxeBWmz6H1VVKtR8rYHhP" ], "license": "MIT" }, "src/market/interfaces/v1.8/ISizeViewV1_8.sol": { - "keccak256": "0xd44b700b471fcdd6dab74676eca4a3d2ab7435c478cdc83c09ff3426c3eec9b1", + "keccak256": "0x25ce9dfa84f7a48195568808555684d9027d6b277691918a9269d84075c446de", "urls": [ - "bzz-raw://440c6ab93d7bf25b47885feb522e0f71963a2bb3247ba820c0f5ce6c3274feb7", - "dweb:/ipfs/QmV4cAiAb16rMZeKWqtDe69Z9NKWHcuxvGJ6pqxbBa9GUu" + "bzz-raw://0af34477c26cdee497c98a91d27fed7125752e7a5ed0a9f540b7f88eaa0b52fc", + "dweb:/ipfs/QmaJf67ydi3WGc4VCA8TVYaXumRcMEjh2hEjTWNSGGS6mP" ], "license": "MIT" }, @@ -3340,18 +3630,18 @@ "license": "MIT" }, "src/market/libraries/Errors.sol": { - "keccak256": "0x7abdde1b276a117d81a1620afa3480be06bf144e072818e693969cf3d2a14baa", + "keccak256": "0xed73df3f39ba612c526ea09234b730cfdfa5ed399b279bb738fbfd5696b38bd0", "urls": [ - "bzz-raw://af0be4d6bed4cb5478cf73bda6c1fddc9ab6b77f3c34835deb3f1bdcefc3a882", - "dweb:/ipfs/QmX7gNjXw5ZXCWkTPkHnqfA8XPa4m1mrQvJcsRumKtkbvx" + "bzz-raw://2c0c78ee291a63f618a99ef99dfd2e6d2ff973f38a2b6fb92001a0a9c6329702", + "dweb:/ipfs/QmQfuhKVMKebzmFYAN6EEDCWr7PpG884Xbqc6VL5XwVmuM" ], "license": "MIT" }, "src/market/libraries/Events.sol": { - "keccak256": "0x85079adf3af32759510c2dbd82ab3f5153ea2ee4b7f2d35c9162659308f3db6f", + "keccak256": "0xce181000a07927aa14c59bc6d514b9829386610f4f6e8e987e7b577301707d60", "urls": [ - "bzz-raw://296805f12ae70a15193390ffa8efbc611460227a995a9e1d46e0b3d4228b3f0a", - "dweb:/ipfs/QmeGzcqCvi7hfk6Bxv7vVZvvfLFCzSup93MwrpRWQZB82K" + "bzz-raw://cfa93b9e1ea3b94e298657b38c8ded2f180296a8054d9593b37695644b075908", + "dweb:/ipfs/QmZ2kyGivGEo5smxeHZ4BZsFNEuy2WanW6PFbJaLrFcFMo" ], "license": "MIT" }, @@ -3380,10 +3670,10 @@ "license": "MIT" }, "src/market/libraries/OfferLibrary.sol": { - "keccak256": "0x542c3ba9d51c00f0d02c7db31b27eedc6d5cb7d723b63f5fcf4ee360e0c43098", + "keccak256": "0x55b32a6221d79312c857fa936342e229a74e440197e87603dfda8c57335c9401", "urls": [ - "bzz-raw://d498bf3e0e807c69c06f51509a506078dbd9d407ba36966f6979d1bb494d6ea4", - "dweb:/ipfs/QmPH4Hz8SgTErj42X3xGHxid6BQiYudwbgEE6ZJ88kNTbv" + "bzz-raw://d9b3e4a528f8360c5ca36d66cfe1d60749613ccb722d1f7af91398bfbf397b9a", + "dweb:/ipfs/QmRzh239xa5YHMrEWtAt4oCbzFdwNDqDgtz8EGZGiFqZW3" ], "license": "MIT" }, @@ -3435,14 +3725,6 @@ ], "license": "MIT" }, - "src/market/libraries/actions/CopyLimitOrders.sol": { - "keccak256": "0x0a05feb3e672625f69bfddee0a52201018e3b6d2eaa11a6b15fde1841ef99fef", - "urls": [ - "bzz-raw://747191eaf25efda3490ae6619b0f2b252231b8750b83ae6c078ef9bf8125942b", - "dweb:/ipfs/QmUiLrSfYdHUqDKAm6Ted47aQvV3ysHETarRbitvdGWbVg" - ], - "license": "MIT" - }, "src/market/libraries/actions/Deposit.sol": { "keccak256": "0x75e2039804c341b06705e712a8403350bf3860207178872eba02b12acc1a55e0", "urls": [ @@ -3468,10 +3750,10 @@ "license": "MIT" }, "src/market/libraries/actions/LiquidateWithReplacement.sol": { - "keccak256": "0x7bb6ac2228d387c7a8e3f38299b847a3123f26bcb6294b22ee11970b9a042cbb", + "keccak256": "0xbf8028638ffc6a29e6b93a8f795ddbdfb5cb119c95c8c7bc0c446b3681514fca", "urls": [ - "bzz-raw://34cfbe1582855e30a25cf3b4326d9a752e1901b50776779ca92d094e9509dea3", - "dweb:/ipfs/QmNZiMDEjt41JYUsrkyNDfKGqSMxbFMAaf2dbznqaEfvVT" + "bzz-raw://9f4db7ddad5d0e210fd133073ec80d63bdc7a6026ff74744fdc4aa83918b1230", + "dweb:/ipfs/QmXSYimeiJRTx4sdBKZsPdY4HSDhK7gbsjB3bm596j7oT5" ], "license": "MIT" }, @@ -3515,11 +3797,27 @@ ], "license": "MIT" }, + "src/market/libraries/actions/SetCopyLimitOrderConfigs.sol": { + "keccak256": "0x8f6f00418e9f62d99e316097724d50ae10369fc9049b1c5caff7d219410cc79e", + "urls": [ + "bzz-raw://36222343f8752b105bd7414e53281f30cdd1aa3ca45539dcfb5fe22d6eb5fdde", + "dweb:/ipfs/QmRCpmVtGTXnRUUR5wPGjW1oSPg8PRcP39Sigfyt4YkXyG" + ], + "license": "MIT" + }, "src/market/libraries/actions/SetUserConfiguration.sol": { - "keccak256": "0xfc4ebcf3b25f112bf4f268167289f65904d45484a35930c5a665a6a405b10f07", + "keccak256": "0x914026fea966b75688fe25a3ac2782a426134ebceb3f1b1719e650f2317dd04e", "urls": [ - "bzz-raw://2c65465dd5d1fbeb0c5ce1b48cce941b2c92dcf32d1f1d3e543513ec858bd9df", - "dweb:/ipfs/QmQNQSUFHYNgvemQNT5HtcLR2ybe4uHLT8o3rDVXHfFbwt" + "bzz-raw://7bb5a25ca819ecf4137af74c23829aaf2d784b868e710f4b563378481426dd4a", + "dweb:/ipfs/QmUTdYB2zr3gDaJ9Qj8ma8RypzdKDAeKWj1UwCS8MmnRrP" + ], + "license": "MIT" + }, + "src/market/libraries/actions/SetVault.sol": { + "keccak256": "0xa9fd4994702f7dc36369fbfb3f7a3ed767b36619bf28471d7d7098aabca62dab", + "urls": [ + "bzz-raw://f7eb78f54189a5ab0247264303eea0e576d9aa8a1ea3d81e3e4aefe1baef13a0", + "dweb:/ipfs/Qmf7DVjjGGRDC4UY1tzLztwG6pEsutWGxiZ2ve1czCE93S" ], "license": "MIT" }, @@ -3532,18 +3830,18 @@ "license": "MIT" }, "src/market/libraries/actions/Withdraw.sol": { - "keccak256": "0x7a742d3bababff2547f5e71d52feb7a6d93549beb896981a8e220952c02f52df", + "keccak256": "0x1c0692507acd9052c4831b4a78fd6a7d54b7ab9743bf49e170441abdd5694247", "urls": [ - "bzz-raw://53abc4a277560dd0688de69f0dc8aa6531ad4ec7c808d4592e656b214fd71f21", - "dweb:/ipfs/QmT61oye8uwqzSwnqK74PFkJu2kV63wHpJKSocH8yur3eR" + "bzz-raw://6c1de43235c6ac35a2a752173ab67346feb750948d2091efd20053f051d7baa9", + "dweb:/ipfs/QmXtbxAzykvnBSRuDWSFYybL6V7pqGwhjCGhkKQhSeb59i" ], "license": "MIT" }, "src/market/token/NonTransferrableRebasingTokenVault.sol": { - "keccak256": "0x408c52f8e5ef7e79e1afcda1a42004a163e8856156ae859388c8b841349b9a55", + "keccak256": "0x9178cafae5e58ebdaa1121fc7548514fc2e2b847ff1b375e42a968bef415ab30", "urls": [ - "bzz-raw://dae3ad0b3f501a9788657b9a961a7ad8440c5cc78f62f581a6949a21166b5481", - "dweb:/ipfs/QmNurenVtRDWbmNHtb1QDzVNbB6sBZcN8LGcn2ayaCFBig" + "bzz-raw://c46fe4fccc7608958715b333f3ef8c3ec4a571c30ddb4650ac4651ff55357745", + "dweb:/ipfs/QmUBKJwNUacfmRG6p6PFYQssKf6gCCt7dvmqDbnL3KsT7g" ], "license": "MIT" }, @@ -3555,11 +3853,19 @@ ], "license": "MIT" }, + "src/market/token/adapters/IAaveAdapter.sol": { + "keccak256": "0xd88333fa5a565a78d2fbdf408f2ff89b69f900bd13ae84e1b102f1a1527c1777", + "urls": [ + "bzz-raw://1890c9632e9fa607c74524da6049080fe42bde8fdc6117136e12e2277dbac02e", + "dweb:/ipfs/QmSD6udpnnRsXoqk6yHxjKpDxiQgmoxQTj3CoXrP64bxKd" + ], + "license": "MIT" + }, "src/market/token/adapters/IAdapter.sol": { - "keccak256": "0xb953b0e5e09d775cf4b6ef970131883c052510a156d0b6a7f6550aa7a3344d7e", + "keccak256": "0x579f476cae67f70982f6d158f90490ccacb37c88d4c9e4318ccee9be0d3ff692", "urls": [ - "bzz-raw://62272b20b8f5d9fe2d7a55e5774835cede834df2d4ee8b3456d35e54547f0fb8", - "dweb:/ipfs/Qmcf9RPBiArogFRFqZjt7jvtBQCuRGDPyQMakVDGPSDHF9" + "bzz-raw://80e9fc7d1fa0dfa85846e80a7ba766c68a39310c604d326f547f9278c2943574", + "dweb:/ipfs/QmS1fNU7hrH21a2ZusfxMqaQvtzAgbdJkcbfw8ps3QB5oQ" ], "license": "MIT" }, @@ -3614,5 +3920,5 @@ }, "version": 1 }, - "id": 268 + "id": 265 } diff --git a/src/v1.8/actions/factory.ts b/src/v1.8/actions/factory.ts index 8c40a59..b902b09 100644 --- a/src/v1.8/actions/factory.ts +++ b/src/v1.8/actions/factory.ts @@ -1,15 +1,21 @@ import { BigNumberish } from "ethers"; import { Address } from "../.."; +import { CopyLimitOrderConfigStruct } from "../types/ethers-contracts/SizeFactory"; type FactoryFunctionName = | "subscribeToCollections" | "unsubscribeFromCollections" | "setAuthorization" - | "revokeAllAuthorizations"; + | "revokeAllAuthorizations" + | "setUserCollectionCopyLimitOrderConfigs"; export type FactoryOperation = { functionName: FactoryFunctionName; - params: BigNumberish[] | [Address, BigNumberish] | []; + params: + | BigNumberish[] + | [Address, BigNumberish] + | [BigNumberish, CopyLimitOrderConfigStruct, CopyLimitOrderConfigStruct] + | []; }; export class FactoryActions { @@ -42,4 +48,17 @@ export class FactoryActions { params: [], }; } + + setUserCollectionCopyLimitOrderConfigs( + params: [ + BigNumberish, + CopyLimitOrderConfigStruct, + CopyLimitOrderConfigStruct, + ], + ): FactoryOperation { + return { + functionName: "setUserCollectionCopyLimitOrderConfigs", + params, + }; + } } diff --git a/src/v1.8/tx/build.ts b/src/v1.8/tx/build.ts index 3572c5b..d593df9 100644 --- a/src/v1.8/tx/build.ts +++ b/src/v1.8/tx/build.ts @@ -21,6 +21,13 @@ function isERC20Operation( return "functionName" in operation && operation.functionName === "approve"; } +function isBigNumberishArray(params: unknown): params is BigNumberish[] { + return ( + Array.isArray(params) && + params.every((p) => typeof p === "bigint" || typeof p === "number") + ); +} + interface Subcall { target: Address; calldata: string; @@ -82,9 +89,11 @@ export class TxBuilder { }; } /*isFactoryOperation*/ else { const { functionName, params } = operation; - const calldata = this.ISizeFactory.encodeFunctionData(functionName, [ - params, - ]); + + const calldata = this.ISizeFactory.encodeFunctionData( + functionName, + isBigNumberishArray(params) ? [params] : params, + ); return { target: this.sizeFactory, calldata: calldata, diff --git a/src/v1.8/types/ethers-contracts/CollectionsManager.ts b/src/v1.8/types/ethers-contracts/CollectionsManager.ts new file mode 100644 index 0000000..69a47ad --- /dev/null +++ b/src/v1.8/types/ethers-contracts/CollectionsManager.ts @@ -0,0 +1,1884 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PayableOverrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import type { + FunctionFragment, + Result, + EventFragment, +} from "@ethersproject/abi"; +import type { Listener, Provider } from "@ethersproject/providers"; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, +} from "./common"; + +export type CopyLimitOrderConfigStruct = { + minTenor: BigNumberish; + maxTenor: BigNumberish; + minAPR: BigNumberish; + maxAPR: BigNumberish; + offsetAPR: BigNumberish; +}; + +export type CopyLimitOrderConfigStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, +] & { + minTenor: BigNumber; + maxTenor: BigNumber; + minAPR: BigNumber; + maxAPR: BigNumber; + offsetAPR: BigNumber; +}; + +export interface CollectionsManagerInterface extends utils.Interface { + functions: { + "UPGRADE_INTERFACE_VERSION()": FunctionFragment; + "addMarketsToCollection(uint256,address[])": FunctionFragment; + "addRateProvidersToCollectionMarket(uint256,address,address[])": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "collectionContainsMarket(uint256,address)": FunctionFragment; + "createCollection()": FunctionFragment; + "getApproved(uint256)": FunctionFragment; + "getBorrowOfferAPR(address,uint256,address,address,uint256)": FunctionFragment; + "getCollectionMarketRateProviders(uint256,address)": FunctionFragment; + "getLimitOrderAPR(address,uint256,address,address,uint256,bool)": FunctionFragment; + "getLoanOfferAPR(address,uint256,address,address,uint256)": FunctionFragment; + "getSubscribedCollections(address)": FunctionFragment; + "initialize(address)": FunctionFragment; + "isApprovedForAll(address,address)": FunctionFragment; + "isBorrowAPRLowerThanLoanOfferAPRs(address,uint256,address,uint256)": FunctionFragment; + "isCopyingCollectionMarketRateProvider(address,uint256,address,address)": FunctionFragment; + "isLoanAPRGreaterThanBorrowOfferAPRs(address,uint256,address,uint256)": FunctionFragment; + "isSubscribedToCollection(address,uint256)": FunctionFragment; + "isValidCollectionId(uint256)": FunctionFragment; + "multicall(bytes[])": FunctionFragment; + "name()": FunctionFragment; + "ownerOf(uint256)": FunctionFragment; + "proxiableUUID()": FunctionFragment; + "removeMarketsFromCollection(uint256,address[])": FunctionFragment; + "removeRateProvidersFromCollectionMarket(uint256,address,address[])": FunctionFragment; + "safeTransferFrom(address,address,uint256)": FunctionFragment; + "safeTransferFrom(address,address,uint256,bytes)": FunctionFragment; + "setApprovalForAll(address,bool)": FunctionFragment; + "setUserCollectionCopyLimitOrderConfigs(address,uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": FunctionFragment; + "subscribeUserToCollections(address,uint256[])": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + "symbol()": FunctionFragment; + "tokenByIndex(uint256)": FunctionFragment; + "tokenOfOwnerByIndex(address,uint256)": FunctionFragment; + "tokenURI(uint256)": FunctionFragment; + "totalSupply()": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + "unsubscribeUserFromCollections(address,uint256[])": FunctionFragment; + "upgradeToAndCall(address,bytes)": FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | "UPGRADE_INTERFACE_VERSION" + | "addMarketsToCollection" + | "addRateProvidersToCollectionMarket" + | "approve" + | "balanceOf" + | "collectionContainsMarket" + | "createCollection" + | "getApproved" + | "getBorrowOfferAPR" + | "getCollectionMarketRateProviders" + | "getLimitOrderAPR" + | "getLoanOfferAPR" + | "getSubscribedCollections" + | "initialize" + | "isApprovedForAll" + | "isBorrowAPRLowerThanLoanOfferAPRs" + | "isCopyingCollectionMarketRateProvider" + | "isLoanAPRGreaterThanBorrowOfferAPRs" + | "isSubscribedToCollection" + | "isValidCollectionId" + | "multicall" + | "name" + | "ownerOf" + | "proxiableUUID" + | "removeMarketsFromCollection" + | "removeRateProvidersFromCollectionMarket" + | "safeTransferFrom(address,address,uint256)" + | "safeTransferFrom(address,address,uint256,bytes)" + | "setApprovalForAll" + | "setUserCollectionCopyLimitOrderConfigs" + | "subscribeUserToCollections" + | "supportsInterface" + | "symbol" + | "tokenByIndex" + | "tokenOfOwnerByIndex" + | "tokenURI" + | "totalSupply" + | "transferFrom" + | "unsubscribeUserFromCollections" + | "upgradeToAndCall", + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: "addMarketsToCollection", + values: [BigNumberish, string[]], + ): string; + encodeFunctionData( + functionFragment: "addRateProvidersToCollectionMarket", + values: [BigNumberish, string, string[]], + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish], + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "collectionContainsMarket", + values: [BigNumberish, string], + ): string; + encodeFunctionData( + functionFragment: "createCollection", + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "getBorrowOfferAPR", + values: [string, BigNumberish, string, string, BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "getCollectionMarketRateProviders", + values: [BigNumberish, string], + ): string; + encodeFunctionData( + functionFragment: "getLimitOrderAPR", + values: [string, BigNumberish, string, string, BigNumberish, boolean], + ): string; + encodeFunctionData( + functionFragment: "getLoanOfferAPR", + values: [string, BigNumberish, string, string, BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "getSubscribedCollections", + values: [string], + ): string; + encodeFunctionData(functionFragment: "initialize", values: [string]): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [string, string], + ): string; + encodeFunctionData( + functionFragment: "isBorrowAPRLowerThanLoanOfferAPRs", + values: [string, BigNumberish, string, BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "isCopyingCollectionMarketRateProvider", + values: [string, BigNumberish, string, string], + ): string; + encodeFunctionData( + functionFragment: "isLoanAPRGreaterThanBorrowOfferAPRs", + values: [string, BigNumberish, string, BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "isSubscribedToCollection", + values: [string, BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "isValidCollectionId", + values: [BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike[]], + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: "removeMarketsFromCollection", + values: [BigNumberish, string[]], + ): string; + encodeFunctionData( + functionFragment: "removeRateProvidersFromCollectionMarket", + values: [BigNumberish, string, string[]], + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256)", + values: [string, string, BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + values: [string, string, BigNumberish, BytesLike], + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [string, boolean], + ): string; + encodeFunctionData( + functionFragment: "setUserCollectionCopyLimitOrderConfigs", + values: [ + string, + BigNumberish, + CopyLimitOrderConfigStruct, + CopyLimitOrderConfigStruct, + ], + ): string; + encodeFunctionData( + functionFragment: "subscribeUserToCollections", + values: [string, BigNumberish[]], + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike], + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "tokenByIndex", + values: [BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "tokenOfOwnerByIndex", + values: [string, BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "tokenURI", + values: [BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined, + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish], + ): string; + encodeFunctionData( + functionFragment: "unsubscribeUserFromCollections", + values: [string, BigNumberish[]], + ): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [string, BytesLike], + ): string; + + decodeFunctionResult( + functionFragment: "UPGRADE_INTERFACE_VERSION", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "addMarketsToCollection", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "addRateProvidersToCollectionMarket", + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "collectionContainsMarket", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "createCollection", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "getBorrowOfferAPR", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "getCollectionMarketRateProviders", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "getLimitOrderAPR", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "getLoanOfferAPR", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "getSubscribedCollections", + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "isBorrowAPRLowerThanLoanOfferAPRs", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "isCopyingCollectionMarketRateProvider", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "isLoanAPRGreaterThanBorrowOfferAPRs", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "isSubscribedToCollection", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "isValidCollectionId", + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "removeMarketsFromCollection", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "removeRateProvidersFromCollectionMarket", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256)", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom(address,address,uint256,bytes)", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "setUserCollectionCopyLimitOrderConfigs", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "subscribeUserToCollections", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "tokenByIndex", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "tokenOfOwnerByIndex", + data: BytesLike, + ): Result; + decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "unsubscribeUserFromCollections", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike, + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "ApprovalForAll(address,address,bool)": EventFragment; + "Initialized(uint64)": EventFragment; + "MarketAddedToCollection(uint256,address)": EventFragment; + "MarketRemovedFromCollection(uint256,address)": EventFragment; + "RateProviderAddedToMarket(uint256,address,address)": EventFragment; + "RateProviderRemovedFromMarket(uint256,address,address)": EventFragment; + "SetUserCollectionCopyLimitOrderConfigs(address,uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": EventFragment; + "SubscribedToCollection(address,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + "UnsubscribedFromCollection(address,uint256)": EventFragment; + "Upgraded(address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; + getEvent(nameOrSignatureOrTopic: "MarketAddedToCollection"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "MarketRemovedFromCollection", + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "RateProviderAddedToMarket"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "RateProviderRemovedFromMarket", + ): EventFragment; + getEvent( + nameOrSignatureOrTopic: "SetUserCollectionCopyLimitOrderConfigs", + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "SubscribedToCollection"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; + getEvent(nameOrSignatureOrTopic: "UnsubscribedFromCollection"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; +} + +export interface ApprovalEventObject { + owner: string; + approved: string; + tokenId: BigNumber; +} +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber], + ApprovalEventObject +>; + +export type ApprovalEventFilter = TypedEventFilter; + +export interface ApprovalForAllEventObject { + owner: string; + operator: string; + approved: boolean; +} +export type ApprovalForAllEvent = TypedEvent< + [string, string, boolean], + ApprovalForAllEventObject +>; + +export type ApprovalForAllEventFilter = TypedEventFilter; + +export interface InitializedEventObject { + version: BigNumber; +} +export type InitializedEvent = TypedEvent<[BigNumber], InitializedEventObject>; + +export type InitializedEventFilter = TypedEventFilter; + +export interface MarketAddedToCollectionEventObject { + collectionId: BigNumber; + market: string; +} +export type MarketAddedToCollectionEvent = TypedEvent< + [BigNumber, string], + MarketAddedToCollectionEventObject +>; + +export type MarketAddedToCollectionEventFilter = + TypedEventFilter; + +export interface MarketRemovedFromCollectionEventObject { + collectionId: BigNumber; + market: string; +} +export type MarketRemovedFromCollectionEvent = TypedEvent< + [BigNumber, string], + MarketRemovedFromCollectionEventObject +>; + +export type MarketRemovedFromCollectionEventFilter = + TypedEventFilter; + +export interface RateProviderAddedToMarketEventObject { + collectionId: BigNumber; + market: string; + rateProvider: string; +} +export type RateProviderAddedToMarketEvent = TypedEvent< + [BigNumber, string, string], + RateProviderAddedToMarketEventObject +>; + +export type RateProviderAddedToMarketEventFilter = + TypedEventFilter; + +export interface RateProviderRemovedFromMarketEventObject { + collectionId: BigNumber; + market: string; + rateProvider: string; +} +export type RateProviderRemovedFromMarketEvent = TypedEvent< + [BigNumber, string, string], + RateProviderRemovedFromMarketEventObject +>; + +export type RateProviderRemovedFromMarketEventFilter = + TypedEventFilter; + +export interface SetUserCollectionCopyLimitOrderConfigsEventObject { + user: string; + collectionId: BigNumber; + copyLoanOfferConfig: CopyLimitOrderConfigStructOutput; + copyBorrowOfferConfig: CopyLimitOrderConfigStructOutput; +} +export type SetUserCollectionCopyLimitOrderConfigsEvent = TypedEvent< + [ + string, + BigNumber, + CopyLimitOrderConfigStructOutput, + CopyLimitOrderConfigStructOutput, + ], + SetUserCollectionCopyLimitOrderConfigsEventObject +>; + +export type SetUserCollectionCopyLimitOrderConfigsEventFilter = + TypedEventFilter; + +export interface SubscribedToCollectionEventObject { + user: string; + collectionId: BigNumber; +} +export type SubscribedToCollectionEvent = TypedEvent< + [string, BigNumber], + SubscribedToCollectionEventObject +>; + +export type SubscribedToCollectionEventFilter = + TypedEventFilter; + +export interface TransferEventObject { + from: string; + to: string; + tokenId: BigNumber; +} +export type TransferEvent = TypedEvent< + [string, string, BigNumber], + TransferEventObject +>; + +export type TransferEventFilter = TypedEventFilter; + +export interface UnsubscribedFromCollectionEventObject { + user: string; + collectionId: BigNumber; +} +export type UnsubscribedFromCollectionEvent = TypedEvent< + [string, BigNumber], + UnsubscribedFromCollectionEventObject +>; + +export type UnsubscribedFromCollectionEventFilter = + TypedEventFilter; + +export interface UpgradedEventObject { + implementation: string; +} +export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; + +export type UpgradedEventFilter = TypedEventFilter; + +export interface CollectionsManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: CollectionsManagerInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter, + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter, + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + UPGRADE_INTERFACE_VERSION(overrides?: CallOverrides): Promise<[string]>; + + addMarketsToCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + addRateProvidersToCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + collectionContainsMarket( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + createCollection( + overrides?: Overrides & { from?: string }, + ): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise<[string]>; + + getBorrowOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise<[BigNumber] & { apr: BigNumber }>; + + getCollectionMarketRateProviders( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise<[string[]]>; + + getLimitOrderAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + isLoanOffer: boolean, + overrides?: CallOverrides, + ): Promise<[BigNumber] & { apr: BigNumber }>; + + getLoanOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise<[BigNumber] & { apr: BigNumber }>; + + getSubscribedCollections( + user: string, + overrides?: CallOverrides, + ): Promise<[BigNumber[]] & { collectionIds: BigNumber[] }>; + + initialize( + _sizeFactory: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + isBorrowAPRLowerThanLoanOfferAPRs( + user: string, + borrowAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + isCopyingCollectionMarketRateProvider( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + isLoanAPRGreaterThanBorrowOfferAPRs( + user: string, + loanAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + isSubscribedToCollection( + user: string, + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + isValidCollectionId( + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + multicall( + data: BytesLike[], + overrides?: Overrides & { from?: string }, + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise<[string]>; + + proxiableUUID(overrides?: CallOverrides): Promise<[string]>; + + removeMarketsFromCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + removeRateProvidersFromCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string }, + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string }, + ): Promise; + + setUserCollectionCopyLimitOrderConfigs( + user: string, + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + subscribeUserToCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: Overrides & { from?: string }, + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + unsubscribeUserFromCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: Overrides & { from?: string }, + ): Promise; + + upgradeToAndCall( + newImplementation: string, + data: BytesLike, + overrides?: PayableOverrides & { from?: string }, + ): Promise; + }; + + UPGRADE_INTERFACE_VERSION(overrides?: CallOverrides): Promise; + + addMarketsToCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + addRateProvidersToCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + collectionContainsMarket( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise; + + createCollection( + overrides?: Overrides & { from?: string }, + ): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getBorrowOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getCollectionMarketRateProviders( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise; + + getLimitOrderAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + isLoanOffer: boolean, + overrides?: CallOverrides, + ): Promise; + + getLoanOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getSubscribedCollections( + user: string, + overrides?: CallOverrides, + ): Promise; + + initialize( + _sizeFactory: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides, + ): Promise; + + isBorrowAPRLowerThanLoanOfferAPRs( + user: string, + borrowAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isCopyingCollectionMarketRateProvider( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + overrides?: CallOverrides, + ): Promise; + + isLoanAPRGreaterThanBorrowOfferAPRs( + user: string, + loanAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isSubscribedToCollection( + user: string, + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isValidCollectionId( + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + multicall( + data: BytesLike[], + overrides?: Overrides & { from?: string }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + proxiableUUID(overrides?: CallOverrides): Promise; + + removeMarketsFromCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + removeRateProvidersFromCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string }, + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string }, + ): Promise; + + setUserCollectionCopyLimitOrderConfigs( + user: string, + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + subscribeUserToCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: Overrides & { from?: string }, + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + unsubscribeUserFromCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: Overrides & { from?: string }, + ): Promise; + + upgradeToAndCall( + newImplementation: string, + data: BytesLike, + overrides?: PayableOverrides & { from?: string }, + ): Promise; + + callStatic: { + UPGRADE_INTERFACE_VERSION(overrides?: CallOverrides): Promise; + + addMarketsToCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: CallOverrides, + ): Promise; + + addRateProvidersToCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: CallOverrides, + ): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + collectionContainsMarket( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise; + + createCollection(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getBorrowOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getCollectionMarketRateProviders( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise; + + getLimitOrderAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + isLoanOffer: boolean, + overrides?: CallOverrides, + ): Promise; + + getLoanOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getSubscribedCollections( + user: string, + overrides?: CallOverrides, + ): Promise; + + initialize(_sizeFactory: string, overrides?: CallOverrides): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides, + ): Promise; + + isBorrowAPRLowerThanLoanOfferAPRs( + user: string, + borrowAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isCopyingCollectionMarketRateProvider( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + overrides?: CallOverrides, + ): Promise; + + isLoanAPRGreaterThanBorrowOfferAPRs( + user: string, + loanAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isSubscribedToCollection( + user: string, + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isValidCollectionId( + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + multicall(data: BytesLike[], overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + proxiableUUID(overrides?: CallOverrides): Promise; + + removeMarketsFromCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: CallOverrides, + ): Promise; + + removeRateProvidersFromCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: CallOverrides, + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: CallOverrides, + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: CallOverrides, + ): Promise; + + setUserCollectionCopyLimitOrderConfigs( + user: string, + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: CallOverrides, + ): Promise; + + subscribeUserToCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: CallOverrides, + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + unsubscribeUserFromCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: CallOverrides, + ): Promise; + + upgradeToAndCall( + newImplementation: string, + data: BytesLike, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null, + ): ApprovalEventFilter; + Approval( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null, + ): ApprovalEventFilter; + + "ApprovalForAll(address,address,bool)"( + owner?: string | null, + operator?: string | null, + approved?: null, + ): ApprovalForAllEventFilter; + ApprovalForAll( + owner?: string | null, + operator?: string | null, + approved?: null, + ): ApprovalForAllEventFilter; + + "Initialized(uint64)"(version?: null): InitializedEventFilter; + Initialized(version?: null): InitializedEventFilter; + + "MarketAddedToCollection(uint256,address)"( + collectionId?: BigNumberish | null, + market?: string | null, + ): MarketAddedToCollectionEventFilter; + MarketAddedToCollection( + collectionId?: BigNumberish | null, + market?: string | null, + ): MarketAddedToCollectionEventFilter; + + "MarketRemovedFromCollection(uint256,address)"( + collectionId?: BigNumberish | null, + market?: string | null, + ): MarketRemovedFromCollectionEventFilter; + MarketRemovedFromCollection( + collectionId?: BigNumberish | null, + market?: string | null, + ): MarketRemovedFromCollectionEventFilter; + + "RateProviderAddedToMarket(uint256,address,address)"( + collectionId?: BigNumberish | null, + market?: string | null, + rateProvider?: string | null, + ): RateProviderAddedToMarketEventFilter; + RateProviderAddedToMarket( + collectionId?: BigNumberish | null, + market?: string | null, + rateProvider?: string | null, + ): RateProviderAddedToMarketEventFilter; + + "RateProviderRemovedFromMarket(uint256,address,address)"( + collectionId?: BigNumberish | null, + market?: string | null, + rateProvider?: string | null, + ): RateProviderRemovedFromMarketEventFilter; + RateProviderRemovedFromMarket( + collectionId?: BigNumberish | null, + market?: string | null, + rateProvider?: string | null, + ): RateProviderRemovedFromMarketEventFilter; + + "SetUserCollectionCopyLimitOrderConfigs(address,uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))"( + user?: string | null, + collectionId?: BigNumberish | null, + copyLoanOfferConfig?: null, + copyBorrowOfferConfig?: null, + ): SetUserCollectionCopyLimitOrderConfigsEventFilter; + SetUserCollectionCopyLimitOrderConfigs( + user?: string | null, + collectionId?: BigNumberish | null, + copyLoanOfferConfig?: null, + copyBorrowOfferConfig?: null, + ): SetUserCollectionCopyLimitOrderConfigsEventFilter; + + "SubscribedToCollection(address,uint256)"( + user?: string | null, + collectionId?: BigNumberish | null, + ): SubscribedToCollectionEventFilter; + SubscribedToCollection( + user?: string | null, + collectionId?: BigNumberish | null, + ): SubscribedToCollectionEventFilter; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null, + ): TransferEventFilter; + Transfer( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null, + ): TransferEventFilter; + + "UnsubscribedFromCollection(address,uint256)"( + user?: string | null, + collectionId?: BigNumberish | null, + ): UnsubscribedFromCollectionEventFilter; + UnsubscribedFromCollection( + user?: string | null, + collectionId?: BigNumberish | null, + ): UnsubscribedFromCollectionEventFilter; + + "Upgraded(address)"(implementation?: string | null): UpgradedEventFilter; + Upgraded(implementation?: string | null): UpgradedEventFilter; + }; + + estimateGas: { + UPGRADE_INTERFACE_VERSION(overrides?: CallOverrides): Promise; + + addMarketsToCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + addRateProvidersToCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + collectionContainsMarket( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise; + + createCollection( + overrides?: Overrides & { from?: string }, + ): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getBorrowOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getCollectionMarketRateProviders( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise; + + getLimitOrderAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + isLoanOffer: boolean, + overrides?: CallOverrides, + ): Promise; + + getLoanOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getSubscribedCollections( + user: string, + overrides?: CallOverrides, + ): Promise; + + initialize( + _sizeFactory: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides, + ): Promise; + + isBorrowAPRLowerThanLoanOfferAPRs( + user: string, + borrowAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isCopyingCollectionMarketRateProvider( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + overrides?: CallOverrides, + ): Promise; + + isLoanAPRGreaterThanBorrowOfferAPRs( + user: string, + loanAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isSubscribedToCollection( + user: string, + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isValidCollectionId( + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + multicall( + data: BytesLike[], + overrides?: Overrides & { from?: string }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + proxiableUUID(overrides?: CallOverrides): Promise; + + removeMarketsFromCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + removeRateProvidersFromCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string }, + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string }, + ): Promise; + + setUserCollectionCopyLimitOrderConfigs( + user: string, + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + subscribeUserToCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: Overrides & { from?: string }, + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + unsubscribeUserFromCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: Overrides & { from?: string }, + ): Promise; + + upgradeToAndCall( + newImplementation: string, + data: BytesLike, + overrides?: PayableOverrides & { from?: string }, + ): Promise; + }; + + populateTransaction: { + UPGRADE_INTERFACE_VERSION( + overrides?: CallOverrides, + ): Promise; + + addMarketsToCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + addRateProvidersToCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides, + ): Promise; + + collectionContainsMarket( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise; + + createCollection( + overrides?: Overrides & { from?: string }, + ): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getBorrowOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getCollectionMarketRateProviders( + collectionId: BigNumberish, + market: string, + overrides?: CallOverrides, + ): Promise; + + getLimitOrderAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + isLoanOffer: boolean, + overrides?: CallOverrides, + ): Promise; + + getLoanOfferAPR( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + getSubscribedCollections( + user: string, + overrides?: CallOverrides, + ): Promise; + + initialize( + _sizeFactory: string, + overrides?: Overrides & { from?: string }, + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides, + ): Promise; + + isBorrowAPRLowerThanLoanOfferAPRs( + user: string, + borrowAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isCopyingCollectionMarketRateProvider( + user: string, + collectionId: BigNumberish, + market: string, + rateProvider: string, + overrides?: CallOverrides, + ): Promise; + + isLoanAPRGreaterThanBorrowOfferAPRs( + user: string, + loanAPR: BigNumberish, + market: string, + tenor: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isSubscribedToCollection( + user: string, + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + isValidCollectionId( + collectionId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + multicall( + data: BytesLike[], + overrides?: Overrides & { from?: string }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + proxiableUUID(overrides?: CallOverrides): Promise; + + removeMarketsFromCollection( + collectionId: BigNumberish, + markets: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + removeRateProvidersFromCollectionMarket( + collectionId: BigNumberish, + market: string, + rateProviders: string[], + overrides?: Overrides & { from?: string }, + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string }, + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string }, + ): Promise; + + setUserCollectionCopyLimitOrderConfigs( + user: string, + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + subscribeUserToCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: Overrides & { from?: string }, + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides, + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string }, + ): Promise; + + unsubscribeUserFromCollections( + user: string, + collectionIds: BigNumberish[], + overrides?: Overrides & { from?: string }, + ): Promise; + + upgradeToAndCall( + newImplementation: string, + data: BytesLike, + overrides?: PayableOverrides & { from?: string }, + ): Promise; + }; +} diff --git a/src/v1.8/types/ethers-contracts/Size.ts b/src/v1.8/types/ethers-contracts/Size.ts index fe8745d..a9f22b4 100644 --- a/src/v1.8/types/ethers-contracts/Size.ts +++ b/src/v1.8/types/ethers-contracts/Size.ts @@ -714,7 +714,6 @@ export interface SizeInterface extends utils.Interface { "getCreditPosition(uint256)": FunctionFragment; "getDebtPosition(uint256)": FunctionFragment; "getLoanOfferAPR(address,uint256,address,uint256)": FunctionFragment; - "getPositionsCount()": FunctionFragment; "getRoleAdmin(bytes32)": FunctionFragment; "getSellCreditMarketSwapData((address,uint256,uint256,uint256,uint256,uint256,bool,uint256,address))": FunctionFragment; "getUserDefinedBorrowOfferAPR(address,uint256)": FunctionFragment; @@ -725,7 +724,8 @@ export interface SizeInterface extends utils.Interface { "grantRole(bytes32,address)": FunctionFragment; "hasRole(bytes32,address)": FunctionFragment; "initialize(address,(uint256,uint256,uint256,uint256,uint256,address),(uint256,uint256,uint256,uint256,uint256),(address,uint64),(address,address,address,address,address,address))": FunctionFragment; - "isDebtPositionLiquidatable(uint256)": FunctionFragment; + "isUserDefinedBorrowOfferNull(address)": FunctionFragment; + "isUserDefinedLoanOfferNull(address)": FunctionFragment; "liquidate((uint256,uint256,uint256))": FunctionFragment; "liquidateWithReplacement((uint256,address,uint256,uint256,uint256,uint256,address))": FunctionFragment; "multicall(bytes[])": FunctionFragment; @@ -749,7 +749,6 @@ export interface SizeInterface extends utils.Interface { "setCopyLimitOrderConfigsOnBehalfOf((((uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256)),address))": FunctionFragment; "setUserConfiguration((uint256,bool,bool,uint256[]))": FunctionFragment; "setUserConfigurationOnBehalfOf(((uint256,bool,bool,uint256[]),address))": FunctionFragment; - "setVariablePoolBorrowRate(uint128)": FunctionFragment; "setVault((address,bool))": FunctionFragment; "setVaultOnBehalfOf(((address,bool),address))": FunctionFragment; "supportsInterface(bytes4)": FunctionFragment; @@ -783,7 +782,6 @@ export interface SizeInterface extends utils.Interface { | "getCreditPosition" | "getDebtPosition" | "getLoanOfferAPR" - | "getPositionsCount" | "getRoleAdmin" | "getSellCreditMarketSwapData" | "getUserDefinedBorrowOfferAPR" @@ -794,7 +792,8 @@ export interface SizeInterface extends utils.Interface { | "grantRole" | "hasRole" | "initialize" - | "isDebtPositionLiquidatable" + | "isUserDefinedBorrowOfferNull" + | "isUserDefinedLoanOfferNull" | "liquidate" | "liquidateWithReplacement" | "multicall" @@ -818,7 +817,6 @@ export interface SizeInterface extends utils.Interface { | "setCopyLimitOrderConfigsOnBehalfOf" | "setUserConfiguration" | "setUserConfigurationOnBehalfOf" - | "setVariablePoolBorrowRate" | "setVault" | "setVaultOnBehalfOf" | "supportsInterface" @@ -904,10 +902,6 @@ export interface SizeInterface extends utils.Interface { functionFragment: "getLoanOfferAPR", values: [string, BigNumberish, string, BigNumberish], ): string; - encodeFunctionData( - functionFragment: "getPositionsCount", - values?: undefined, - ): string; encodeFunctionData( functionFragment: "getRoleAdmin", values: [BytesLike], @@ -952,8 +946,12 @@ export interface SizeInterface extends utils.Interface { ], ): string; encodeFunctionData( - functionFragment: "isDebtPositionLiquidatable", - values: [BigNumberish], + functionFragment: "isUserDefinedBorrowOfferNull", + values: [string], + ): string; + encodeFunctionData( + functionFragment: "isUserDefinedLoanOfferNull", + values: [string], ): string; encodeFunctionData( functionFragment: "liquidate", @@ -1038,10 +1036,6 @@ export interface SizeInterface extends utils.Interface { functionFragment: "setUserConfigurationOnBehalfOf", values: [SetUserConfigurationOnBehalfOfParamsStruct], ): string; - encodeFunctionData( - functionFragment: "setVariablePoolBorrowRate", - values: [BigNumberish], - ): string; encodeFunctionData( functionFragment: "setVault", values: [SetVaultParamsStruct], @@ -1138,10 +1132,6 @@ export interface SizeInterface extends utils.Interface { functionFragment: "getLoanOfferAPR", data: BytesLike, ): Result; - decodeFunctionResult( - functionFragment: "getPositionsCount", - data: BytesLike, - ): Result; decodeFunctionResult( functionFragment: "getRoleAdmin", data: BytesLike, @@ -1174,7 +1164,11 @@ export interface SizeInterface extends utils.Interface { decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult( - functionFragment: "isDebtPositionLiquidatable", + functionFragment: "isUserDefinedBorrowOfferNull", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "isUserDefinedLoanOfferNull", data: BytesLike, ): Result; decodeFunctionResult(functionFragment: "liquidate", data: BytesLike): Result; @@ -1245,10 +1239,6 @@ export interface SizeInterface extends utils.Interface { functionFragment: "setUserConfigurationOnBehalfOf", data: BytesLike, ): Result; - decodeFunctionResult( - functionFragment: "setVariablePoolBorrowRate", - data: BytesLike, - ): Result; decodeFunctionResult(functionFragment: "setVault", data: BytesLike): Result; decodeFunctionResult( functionFragment: "setVaultOnBehalfOf", @@ -1282,7 +1272,6 @@ export interface SizeInterface extends utils.Interface { "RoleRevoked(bytes32,address,address)": EventFragment; "Unpaused(address)": EventFragment; "Upgraded(address)": EventFragment; - "VariablePoolBorrowRateUpdated(address,uint128,uint128)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; @@ -1292,9 +1281,6 @@ export interface SizeInterface extends utils.Interface { getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment; getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment; getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "VariablePoolBorrowRateUpdated", - ): EventFragment; } export interface InitializedEventObject { @@ -1362,19 +1348,6 @@ export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; export type UpgradedEventFilter = TypedEventFilter; -export interface VariablePoolBorrowRateUpdatedEventObject { - sender: string; - oldBorrowRate: BigNumber; - newBorrowRate: BigNumber; -} -export type VariablePoolBorrowRateUpdatedEvent = TypedEvent< - [string, BigNumber, BigNumber], - VariablePoolBorrowRateUpdatedEventObject ->; - -export type VariablePoolBorrowRateUpdatedEventFilter = - TypedEventFilter; - export interface Size extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; @@ -1498,10 +1471,6 @@ export interface Size extends BaseContract { overrides?: CallOverrides, ): Promise<[BigNumber]>; - getPositionsCount( - overrides?: CallOverrides, - ): Promise<[BigNumber, BigNumber]>; - getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<[string]>; getSellCreditMarketSwapData( @@ -1557,8 +1526,13 @@ export interface Size extends BaseContract { overrides?: Overrides & { from?: string }, ): Promise; - isDebtPositionLiquidatable( - debtPositionId: BigNumberish, + isUserDefinedBorrowOfferNull( + user: string, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + isUserDefinedLoanOfferNull( + user: string, overrides?: CallOverrides, ): Promise<[boolean]>; @@ -1669,11 +1643,6 @@ export interface Size extends BaseContract { overrides?: PayableOverrides & { from?: string }, ): Promise; - setVariablePoolBorrowRate( - borrowRate: BigNumberish, - overrides?: Overrides & { from?: string }, - ): Promise; - setVault( params: SetVaultParamsStruct, overrides?: PayableOverrides & { from?: string }, @@ -1810,8 +1779,6 @@ export interface Size extends BaseContract { overrides?: CallOverrides, ): Promise; - getPositionsCount(overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; - getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise; getSellCreditMarketSwapData( @@ -1867,8 +1834,13 @@ export interface Size extends BaseContract { overrides?: Overrides & { from?: string }, ): Promise; - isDebtPositionLiquidatable( - debtPositionId: BigNumberish, + isUserDefinedBorrowOfferNull( + user: string, + overrides?: CallOverrides, + ): Promise; + + isUserDefinedLoanOfferNull( + user: string, overrides?: CallOverrides, ): Promise; @@ -1979,11 +1951,6 @@ export interface Size extends BaseContract { overrides?: PayableOverrides & { from?: string }, ): Promise; - setVariablePoolBorrowRate( - borrowRate: BigNumberish, - overrides?: Overrides & { from?: string }, - ): Promise; - setVault( params: SetVaultParamsStruct, overrides?: PayableOverrides & { from?: string }, @@ -2120,10 +2087,6 @@ export interface Size extends BaseContract { overrides?: CallOverrides, ): Promise; - getPositionsCount( - overrides?: CallOverrides, - ): Promise<[BigNumber, BigNumber]>; - getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise; getSellCreditMarketSwapData( @@ -2179,8 +2142,13 @@ export interface Size extends BaseContract { overrides?: CallOverrides, ): Promise; - isDebtPositionLiquidatable( - debtPositionId: BigNumberish, + isUserDefinedBorrowOfferNull( + user: string, + overrides?: CallOverrides, + ): Promise; + + isUserDefinedLoanOfferNull( + user: string, overrides?: CallOverrides, ): Promise; @@ -2286,11 +2254,6 @@ export interface Size extends BaseContract { overrides?: CallOverrides, ): Promise; - setVariablePoolBorrowRate( - borrowRate: BigNumberish, - overrides?: CallOverrides, - ): Promise; - setVault( params: SetVaultParamsStruct, overrides?: CallOverrides, @@ -2377,17 +2340,6 @@ export interface Size extends BaseContract { "Upgraded(address)"(implementation?: string | null): UpgradedEventFilter; Upgraded(implementation?: string | null): UpgradedEventFilter; - - "VariablePoolBorrowRateUpdated(address,uint128,uint128)"( - sender?: string | null, - oldBorrowRate?: null, - newBorrowRate?: null, - ): VariablePoolBorrowRateUpdatedEventFilter; - VariablePoolBorrowRateUpdated( - sender?: string | null, - oldBorrowRate?: null, - newBorrowRate?: null, - ): VariablePoolBorrowRateUpdatedEventFilter; }; estimateGas: { @@ -2485,8 +2437,6 @@ export interface Size extends BaseContract { overrides?: CallOverrides, ): Promise; - getPositionsCount(overrides?: CallOverrides): Promise; - getRoleAdmin( role: BytesLike, overrides?: CallOverrides, @@ -2542,8 +2492,13 @@ export interface Size extends BaseContract { overrides?: Overrides & { from?: string }, ): Promise; - isDebtPositionLiquidatable( - debtPositionId: BigNumberish, + isUserDefinedBorrowOfferNull( + user: string, + overrides?: CallOverrides, + ): Promise; + + isUserDefinedLoanOfferNull( + user: string, overrides?: CallOverrides, ): Promise; @@ -2646,11 +2601,6 @@ export interface Size extends BaseContract { overrides?: PayableOverrides & { from?: string }, ): Promise; - setVariablePoolBorrowRate( - borrowRate: BigNumberish, - overrides?: Overrides & { from?: string }, - ): Promise; - setVault( params: SetVaultParamsStruct, overrides?: PayableOverrides & { from?: string }, @@ -2791,8 +2741,6 @@ export interface Size extends BaseContract { overrides?: CallOverrides, ): Promise; - getPositionsCount(overrides?: CallOverrides): Promise; - getRoleAdmin( role: BytesLike, overrides?: CallOverrides, @@ -2851,8 +2799,13 @@ export interface Size extends BaseContract { overrides?: Overrides & { from?: string }, ): Promise; - isDebtPositionLiquidatable( - debtPositionId: BigNumberish, + isUserDefinedBorrowOfferNull( + user: string, + overrides?: CallOverrides, + ): Promise; + + isUserDefinedLoanOfferNull( + user: string, overrides?: CallOverrides, ): Promise; @@ -2959,11 +2912,6 @@ export interface Size extends BaseContract { overrides?: PayableOverrides & { from?: string }, ): Promise; - setVariablePoolBorrowRate( - borrowRate: BigNumberish, - overrides?: Overrides & { from?: string }, - ): Promise; - setVault( params: SetVaultParamsStruct, overrides?: PayableOverrides & { from?: string }, diff --git a/src/v1.8/types/ethers-contracts/SizeFactory.ts b/src/v1.8/types/ethers-contracts/SizeFactory.ts index d9f5eb4..fbe0f2d 100644 --- a/src/v1.8/types/ethers-contracts/SizeFactory.ts +++ b/src/v1.8/types/ethers-contracts/SizeFactory.ts @@ -146,6 +146,28 @@ export type PriceFeedParamsStructOutput = [ sequencerUptimeFeed: string; }; +export type CopyLimitOrderConfigStruct = { + minTenor: BigNumberish; + maxTenor: BigNumberish; + minAPR: BigNumberish; + maxAPR: BigNumberish; + offsetAPR: BigNumberish; +}; + +export type CopyLimitOrderConfigStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, +] & { + minTenor: BigNumber; + maxTenor: BigNumber; + minAPR: BigNumber; + maxAPR: BigNumber; + offsetAPR: BigNumber; +}; + export interface SizeFactoryInterface extends utils.Interface { functions: { "DEFAULT_ADMIN_ROLE()": FunctionFragment; @@ -174,9 +196,7 @@ export interface SizeFactoryInterface extends utils.Interface { "isMarket(address)": FunctionFragment; "multicall(bytes[])": FunctionFragment; "nonTransferrableTokenVaultImplementation()": FunctionFragment; - "onERC721Received(address,address,uint256,bytes)": FunctionFragment; "proxiableUUID()": FunctionFragment; - "reinitialize(address,address[],address,address,address[])": FunctionFragment; "renounceRole(bytes32,address)": FunctionFragment; "revokeAllAuthorizations()": FunctionFragment; "revokeRole(bytes32,address)": FunctionFragment; @@ -184,6 +204,8 @@ export interface SizeFactoryInterface extends utils.Interface { "setCollectionsManager(address)": FunctionFragment; "setNonTransferrableRebasingTokenVaultImplementation(address)": FunctionFragment; "setSizeImplementation(address)": FunctionFragment; + "setUserCollectionCopyLimitOrderConfigs(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))": FunctionFragment; + "setUserCollectionCopyLimitOrderConfigsOnBehalfOf(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256),address)": FunctionFragment; "sizeImplementation()": FunctionFragment; "subscribeToCollections(uint256[])": FunctionFragment; "subscribeToCollectionsOnBehalfOf(uint256[],address)": FunctionFragment; @@ -222,9 +244,7 @@ export interface SizeFactoryInterface extends utils.Interface { | "isMarket" | "multicall" | "nonTransferrableTokenVaultImplementation" - | "onERC721Received" | "proxiableUUID" - | "reinitialize" | "renounceRole" | "revokeAllAuthorizations" | "revokeRole" @@ -232,6 +252,8 @@ export interface SizeFactoryInterface extends utils.Interface { | "setCollectionsManager" | "setNonTransferrableRebasingTokenVaultImplementation" | "setSizeImplementation" + | "setUserCollectionCopyLimitOrderConfigs" + | "setUserCollectionCopyLimitOrderConfigsOnBehalfOf" | "sizeImplementation" | "subscribeToCollections" | "subscribeToCollectionsOnBehalfOf" @@ -345,18 +367,10 @@ export interface SizeFactoryInterface extends utils.Interface { functionFragment: "nonTransferrableTokenVaultImplementation", values?: undefined, ): string; - encodeFunctionData( - functionFragment: "onERC721Received", - values: [string, string, BigNumberish, BytesLike], - ): string; encodeFunctionData( functionFragment: "proxiableUUID", values?: undefined, ): string; - encodeFunctionData( - functionFragment: "reinitialize", - values: [string, string[], string, string, string[]], - ): string; encodeFunctionData( functionFragment: "renounceRole", values: [BytesLike, string], @@ -385,6 +399,23 @@ export interface SizeFactoryInterface extends utils.Interface { functionFragment: "setSizeImplementation", values: [string], ): string; + encodeFunctionData( + functionFragment: "setUserCollectionCopyLimitOrderConfigs", + values: [ + BigNumberish, + CopyLimitOrderConfigStruct, + CopyLimitOrderConfigStruct, + ], + ): string; + encodeFunctionData( + functionFragment: "setUserCollectionCopyLimitOrderConfigsOnBehalfOf", + values: [ + BigNumberish, + CopyLimitOrderConfigStruct, + CopyLimitOrderConfigStruct, + string, + ], + ): string; encodeFunctionData( functionFragment: "sizeImplementation", values?: undefined, @@ -495,18 +526,10 @@ export interface SizeFactoryInterface extends utils.Interface { functionFragment: "nonTransferrableTokenVaultImplementation", data: BytesLike, ): Result; - decodeFunctionResult( - functionFragment: "onERC721Received", - data: BytesLike, - ): Result; decodeFunctionResult( functionFragment: "proxiableUUID", data: BytesLike, ): Result; - decodeFunctionResult( - functionFragment: "reinitialize", - data: BytesLike, - ): Result; decodeFunctionResult( functionFragment: "renounceRole", data: BytesLike, @@ -532,6 +555,14 @@ export interface SizeFactoryInterface extends utils.Interface { functionFragment: "setSizeImplementation", data: BytesLike, ): Result; + decodeFunctionResult( + functionFragment: "setUserCollectionCopyLimitOrderConfigs", + data: BytesLike, + ): Result; + decodeFunctionResult( + functionFragment: "setUserCollectionCopyLimitOrderConfigsOnBehalfOf", + data: BytesLike, + ): Result; decodeFunctionResult( functionFragment: "sizeImplementation", data: BytesLike, @@ -899,25 +930,8 @@ export interface SizeFactory extends BaseContract { overrides?: CallOverrides, ): Promise<[string]>; - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: Overrides & { from?: string }, - ): Promise; - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - reinitialize( - _collectionsManager: string, - _users: string[], - _curator: string, - _rateProvider: string, - _collectionMarkets: string[], - overrides?: Overrides & { from?: string }, - ): Promise; - renounceRole( role: BytesLike, callerConfirmation: string, @@ -955,6 +969,21 @@ export interface SizeFactory extends BaseContract { overrides?: Overrides & { from?: string }, ): Promise; + setUserCollectionCopyLimitOrderConfigs( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + setUserCollectionCopyLimitOrderConfigsOnBehalfOf( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + onBehalfOf: string, + overrides?: Overrides & { from?: string }, + ): Promise; + sizeImplementation(overrides?: CallOverrides): Promise<[string]>; subscribeToCollections( @@ -1122,25 +1151,8 @@ export interface SizeFactory extends BaseContract { overrides?: CallOverrides, ): Promise; - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: Overrides & { from?: string }, - ): Promise; - proxiableUUID(overrides?: CallOverrides): Promise; - reinitialize( - _collectionsManager: string, - _users: string[], - _curator: string, - _rateProvider: string, - _collectionMarkets: string[], - overrides?: Overrides & { from?: string }, - ): Promise; - renounceRole( role: BytesLike, callerConfirmation: string, @@ -1178,6 +1190,21 @@ export interface SizeFactory extends BaseContract { overrides?: Overrides & { from?: string }, ): Promise; + setUserCollectionCopyLimitOrderConfigs( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + setUserCollectionCopyLimitOrderConfigsOnBehalfOf( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + onBehalfOf: string, + overrides?: Overrides & { from?: string }, + ): Promise; + sizeImplementation(overrides?: CallOverrides): Promise; subscribeToCollections( @@ -1339,25 +1366,8 @@ export interface SizeFactory extends BaseContract { overrides?: CallOverrides, ): Promise; - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: CallOverrides, - ): Promise; - proxiableUUID(overrides?: CallOverrides): Promise; - reinitialize( - _collectionsManager: string, - _users: string[], - _curator: string, - _rateProvider: string, - _collectionMarkets: string[], - overrides?: CallOverrides, - ): Promise; - renounceRole( role: BytesLike, callerConfirmation: string, @@ -1393,6 +1403,21 @@ export interface SizeFactory extends BaseContract { overrides?: CallOverrides, ): Promise; + setUserCollectionCopyLimitOrderConfigs( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: CallOverrides, + ): Promise; + + setUserCollectionCopyLimitOrderConfigsOnBehalfOf( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + onBehalfOf: string, + overrides?: CallOverrides, + ): Promise; + sizeImplementation(overrides?: CallOverrides): Promise; subscribeToCollections( @@ -1670,25 +1695,8 @@ export interface SizeFactory extends BaseContract { overrides?: CallOverrides, ): Promise; - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: Overrides & { from?: string }, - ): Promise; - proxiableUUID(overrides?: CallOverrides): Promise; - reinitialize( - _collectionsManager: string, - _users: string[], - _curator: string, - _rateProvider: string, - _collectionMarkets: string[], - overrides?: Overrides & { from?: string }, - ): Promise; - renounceRole( role: BytesLike, callerConfirmation: string, @@ -1726,6 +1734,21 @@ export interface SizeFactory extends BaseContract { overrides?: Overrides & { from?: string }, ): Promise; + setUserCollectionCopyLimitOrderConfigs( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + setUserCollectionCopyLimitOrderConfigsOnBehalfOf( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + onBehalfOf: string, + overrides?: Overrides & { from?: string }, + ): Promise; + sizeImplementation(overrides?: CallOverrides): Promise; subscribeToCollections( @@ -1911,25 +1934,8 @@ export interface SizeFactory extends BaseContract { overrides?: CallOverrides, ): Promise; - onERC721Received( - arg0: string, - arg1: string, - arg2: BigNumberish, - arg3: BytesLike, - overrides?: Overrides & { from?: string }, - ): Promise; - proxiableUUID(overrides?: CallOverrides): Promise; - reinitialize( - _collectionsManager: string, - _users: string[], - _curator: string, - _rateProvider: string, - _collectionMarkets: string[], - overrides?: Overrides & { from?: string }, - ): Promise; - renounceRole( role: BytesLike, callerConfirmation: string, @@ -1967,6 +1973,21 @@ export interface SizeFactory extends BaseContract { overrides?: Overrides & { from?: string }, ): Promise; + setUserCollectionCopyLimitOrderConfigs( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + overrides?: Overrides & { from?: string }, + ): Promise; + + setUserCollectionCopyLimitOrderConfigsOnBehalfOf( + collectionId: BigNumberish, + copyLoanOfferConfig: CopyLimitOrderConfigStruct, + copyBorrowOfferConfig: CopyLimitOrderConfigStruct, + onBehalfOf: string, + overrides?: Overrides & { from?: string }, + ): Promise; + sizeImplementation( overrides?: CallOverrides, ): Promise; diff --git a/src/v1.8/types/ethers-contracts/factories/CollectionsManager__factory.ts b/src/v1.8/types/ethers-contracts/factories/CollectionsManager__factory.ts new file mode 100644 index 0000000..a83a9df --- /dev/null +++ b/src/v1.8/types/ethers-contracts/factories/CollectionsManager__factory.ts @@ -0,0 +1,1635 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + CollectionsManager, + CollectionsManagerInterface, +} from "../CollectionsManager"; + +const _abi = [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "UPGRADE_INTERFACE_VERSION", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "addMarketsToCollection", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "markets", + type: "address[]", + internalType: "contract ISize[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "addRateProvidersToCollectionMarket", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + { + name: "rateProviders", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "approve", + inputs: [ + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "balanceOf", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "collectionContainsMarket", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "createCollection", + inputs: [], + outputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "getApproved", + inputs: [ + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getBorrowOfferAPR", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + { + name: "rateProvider", + type: "address", + internalType: "address", + }, + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "apr", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getCollectionMarketRateProviders", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + ], + outputs: [ + { + name: "", + type: "address[]", + internalType: "address[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getLimitOrderAPR", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + { + name: "rateProvider", + type: "address", + internalType: "address", + }, + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "isLoanOffer", + type: "bool", + internalType: "bool", + }, + ], + outputs: [ + { + name: "apr", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getLoanOfferAPR", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + { + name: "rateProvider", + type: "address", + internalType: "address", + }, + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "apr", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getSubscribedCollections", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "collectionIds", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_sizeFactory", + type: "address", + internalType: "contract ISizeFactory", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "isApprovedForAll", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isBorrowAPRLowerThanLoanOfferAPRs", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "borrowAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isCopyingCollectionMarketRateProvider", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + { + name: "rateProvider", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isLoanAPRGreaterThanBorrowOfferAPRs", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "loanAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isSubscribedToCollection", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isValidCollectionId", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "multicall", + inputs: [ + { + name: "data", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + outputs: [ + { + name: "results", + type: "bytes[]", + internalType: "bytes[]", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "name", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "ownerOf", + inputs: [ + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "removeMarketsFromCollection", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "markets", + type: "address[]", + internalType: "contract ISize[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "removeRateProvidersFromCollectionMarket", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "contract ISize", + }, + { + name: "rateProviders", + type: "address[]", + internalType: "address[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "safeTransferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setApprovalForAll", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "approved", + type: "bool", + internalType: "bool", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setUserCollectionCopyLimitOrderConfigs", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "copyLoanOfferConfig", + type: "tuple", + internalType: "struct CopyLimitOrderConfig", + components: [ + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "offsetAPR", + type: "int256", + internalType: "int256", + }, + ], + }, + { + name: "copyBorrowOfferConfig", + type: "tuple", + internalType: "struct CopyLimitOrderConfig", + components: [ + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "offsetAPR", + type: "int256", + internalType: "int256", + }, + ], + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "subscribeUserToCollections", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "collectionIds", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "symbol", + inputs: [], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tokenByIndex", + inputs: [ + { + name: "index", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tokenOfOwnerByIndex", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "index", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tokenURI", + inputs: [ + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "string", + internalType: "string", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "totalSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "transferFrom", + inputs: [ + { + name: "from", + type: "address", + internalType: "address", + }, + { + name: "to", + type: "address", + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "unsubscribeUserFromCollections", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + { + name: "collectionIds", + type: "uint256[]", + internalType: "uint256[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "upgradeToAndCall", + inputs: [ + { + name: "newImplementation", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "payable", + }, + { + type: "event", + name: "Approval", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "approved", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "ApprovalForAll", + inputs: [ + { + name: "owner", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "operator", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "approved", + type: "bool", + indexed: false, + internalType: "bool", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "MarketAddedToCollection", + inputs: [ + { + name: "collectionId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "market", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "MarketRemovedFromCollection", + inputs: [ + { + name: "collectionId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "market", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RateProviderAddedToMarket", + inputs: [ + { + name: "collectionId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "market", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "rateProvider", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RateProviderRemovedFromMarket", + inputs: [ + { + name: "collectionId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "market", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "rateProvider", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SetUserCollectionCopyLimitOrderConfigs", + inputs: [ + { + name: "user", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "copyLoanOfferConfig", + type: "tuple", + indexed: false, + internalType: "struct CopyLimitOrderConfig", + components: [ + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "offsetAPR", + type: "int256", + internalType: "int256", + }, + ], + }, + { + name: "copyBorrowOfferConfig", + type: "tuple", + indexed: false, + internalType: "struct CopyLimitOrderConfig", + components: [ + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "offsetAPR", + type: "int256", + internalType: "int256", + }, + ], + }, + ], + anonymous: false, + }, + { + type: "event", + name: "SubscribedToCollection", + inputs: [ + { + name: "user", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Transfer", + inputs: [ + { + name: "from", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "to", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "UnsubscribedFromCollection", + inputs: [ + { + name: "user", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "collectionId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Upgraded", + inputs: [ + { + name: "implementation", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "AddressEmptyCode", + inputs: [ + { + name: "target", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967InvalidImplementation", + inputs: [ + { + name: "implementation", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC1967NonPayable", + inputs: [], + }, + { + type: "error", + name: "ERC721EnumerableForbiddenBatchMint", + inputs: [], + }, + { + type: "error", + name: "ERC721IncorrectOwner", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InsufficientApproval", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidApprover", + inputs: [ + { + name: "approver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidOperator", + inputs: [ + { + name: "operator", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidOwner", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidReceiver", + inputs: [ + { + name: "receiver", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721InvalidSender", + inputs: [ + { + name: "sender", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "ERC721NonexistentToken", + inputs: [ + { + name: "tokenId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "ERC721OutOfBoundsIndex", + inputs: [ + { + name: "owner", + type: "address", + internalType: "address", + }, + { + name: "index", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "FailedCall", + inputs: [], + }, + { + type: "error", + name: "INVALID_MARKET", + inputs: [ + { + name: "market", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "InvalidCollectionId", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "InvalidCollectionMarketRateProvider", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "address", + }, + { + name: "rateProvider", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "InvalidTenor", + inputs: [ + { + name: "tenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "MarketNotInCollection", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "market", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + type: "error", + name: "OnlySizeFactory", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "PAUSED_MARKET", + inputs: [ + { + name: "market", + type: "address", + internalType: "address", + }, + ], + }, + { + type: "error", + name: "SafeCastOverflowedIntToUint", + inputs: [ + { + name: "value", + type: "int256", + internalType: "int256", + }, + ], + }, + { + type: "error", + name: "SafeCastOverflowedUintToInt", + inputs: [ + { + name: "value", + type: "uint256", + internalType: "uint256", + }, + ], + }, + { + type: "error", + name: "UUPSUnauthorizedCallContext", + inputs: [], + }, + { + type: "error", + name: "UUPSUnsupportedProxiableUUID", + inputs: [ + { + name: "slot", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, +] as const; + +const _bytecode = + "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b60805161419e620001005f395f8181611e0d01528181611e360152612006015261419e5ff3fe608060405260043610610233575f3560e01c806370a0823111610129578063ad3cb1cc116100a8578063c87b56dd1161006d578063c87b56dd146106b0578063dd2bc302146106cf578063de1eb880146106fb578063e985e9c51461071a578063eb379a5814610739575f80fd5b8063ad3cb1cc146105f7578063b88d4fde14610627578063b9d33d1e14610646578063c260d20614610672578063c4d66de814610691575f80fd5b8063a0529e5f116100ee578063a0529e5f1461054f578063a22cb4651461056e578063abff12221461058d578063ac888c07146105ac578063ac9650d8146105cb575f80fd5b806370a08231146104bf5780638134a9e0146104de57806393c0d3f3146104fd57806395d89b411461051c5780639feffdb014610530575f80fd5b806342842e0e116101b5578063565380571161017a578063565380571461042d5780635fb7f10c1461044e5780636352211e1461046d578063647f1a9c1461048c578063678b9bad146104a0575f80fd5b806342842e0e146103a9578063495e6d89146103c85780634f1ef286146103e75780634f6ccce7146103fa57806352d1902d14610419575f80fd5b806318160ddd116101fb57806318160ddd1461030357806318d5932d1461032d57806320d634561461034c57806323b872dd1461036b5780632f745c591461038a575f80fd5b806301ffc9a71461023757806306fdde031461026b578063081812fc1461028c578063095ea7b3146102c35780630b379508146102e4575b5f80fd5b348015610242575f80fd5b5061025661025136600461340d565b610758565b60405190151581526020015b60405180910390f35b348015610276575f80fd5b5061027f610782565b6040516102629190613475565b348015610297575f80fd5b506102ab6102a6366004613487565b610823565b6040516001600160a01b039091168152602001610262565b3480156102ce575f80fd5b506102e26102dd3660046134b2565b610837565b005b3480156102ef575f80fd5b506102e26102fe36600461356a565b610846565b34801561030e575f80fd5b505f80516020614149833981519152545b604051908152602001610262565b348015610338575f80fd5b506102e261034736600461366c565b61097c565b348015610357575f80fd5b506102566103663660046134b2565b6109ba565b348015610376575f80fd5b506102e26103853660046136bb565b6109e2565b348015610395575f80fd5b5061031f6103a43660046134b2565b610a65565b3480156103b4575f80fd5b506102e26103c33660046136bb565b610ad6565b3480156103d3575f80fd5b5061031f6103e23660046136f9565b610af5565b6102e26103f53660046137bb565b610b10565b348015610405575f80fd5b5061031f610414366004613487565b610b2b565b348015610424575f80fd5b5061031f610b9d565b348015610438575f80fd5b50610256610447366004613487565b6001541190565b348015610459575f80fd5b5061031f6104683660046136f9565b610bb9565b348015610478575f80fd5b506102ab610487366004613487565b610bc9565b348015610497575f80fd5b5061031f610bd3565b3480156104ab575f80fd5b506102566104ba366004613807565b610bf3565b3480156104ca575f80fd5b5061031f6104d936600461384c565b610c0c565b3480156104e9575f80fd5b506102566104f8366004613867565b610c64565b348015610508575f80fd5b506102e2610517366004613895565b610ca6565b348015610527575f80fd5b5061027f610e3c565b34801561053b575f80fd5b5061025661054a366004613807565b610e7a565b34801561055a575f80fd5b506102e2610569366004613935565b610e89565b348015610579575f80fd5b506102e26105883660046139d3565b6110ff565b348015610598575f80fd5b506102e26105a7366004613935565b61110a565b3480156105b7575f80fd5b506102566105c63660046139ff565b6112a6565b3480156105d6575f80fd5b506105ea6105e5366004613a4f565b611347565b6040516102629190613abd565b348015610602575f80fd5b5061027f604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610632575f80fd5b506102e2610641366004613b1f565b61142c565b348015610651575f80fd5b5061066561066036600461384c565b611444565b6040516102629190613b86565b34801561067d575f80fd5b5061031f61068c366004613bc9565b611467565b34801561069c575f80fd5b506102e26106ab36600461384c565b611587565b3480156106bb575f80fd5b5061027f6106ca366004613487565b611701565b3480156106da575f80fd5b506106ee6106e9366004613867565b611765565b6040516102629190613c35565b348015610706575f80fd5b506102e2610715366004613895565b611813565b348015610725575f80fd5b50610256610734366004613c75565b611943565b348015610744575f80fd5b506102e261075336600461356a565b61198f565b5f6001600160e01b0319821663780e9d6360e01b148061077c575061077c82611ab2565b92915050565b5f8051602061410983398151915280546060919081906107a190613ca1565b80601f01602080910402602001604051908101604052809291908181526020018280546107cd90613ca1565b80156108185780601f106107ef57610100808354040283529160200191610818565b820191905f5260205f20905b8154815290600101906020018083116107fb57829003601f168201915b505050505091505090565b5f61082d82611b01565b5061077c82611b38565b610842828233611b71565b5050565b8261085a61085382610bc9565b3383611b7e565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff166108b357604051631713bf1160e21b8152600481018590526001600160a01b03841660248201526044015b60405180910390fd5b5f5b8251811015610975575f6109098483815181106108d4576108d4613cd9565b6020908102919091018101515f8981526002835260408082206001600160a01b038b16835290935291909120600b0190611be2565b9050801561096c5783828151811061092357610923613cd9565b60200260200101516001600160a01b0316856001600160a01b0316877f41a3856b408397a3953ee2e3fc5961815599fafae92aa64253fea4124c15835260405160405180910390a45b506001016108b5565b5050505050565b5f546001600160a01b031633146109a857604051630b56d23b60e41b81523360048201526024016108aa565b6109b484848484611bf6565b50505050565b6001600160a01b0382165f9081526003602052604081206109db9083611cf5565b9392505050565b6001600160a01b038216610a0b57604051633250574960e11b81525f60048201526024016108aa565b5f610a17838333611d0c565b9050836001600160a01b0316816001600160a01b0316146109b4576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016108aa565b5f5f805160206140e9833981519152610a7d84610c0c565b8310610aae5760405163295f44f760e21b81526001600160a01b0385166004820152602481018490526044016108aa565b6001600160a01b0384165f908152602091825260408082208583529092522054905092915050565b610af083838360405180602001604052805f81525061142c565b505050565b5f610b0486868686865f611467565b90505b95945050505050565b610b18611e02565b610b2182611ea8565b6108428282611f3f565b5f5f805160206140e9833981519152610b4f5f805160206141498339815191525490565b8310610b775760405163295f44f760e21b81525f6004820152602481018490526044016108aa565b806002018381548110610b8c57610b8c613cd9565b905f5260205f200154915050919050565b5f610ba6611ffb565b505f805160206141298339815191525b90565b5f610b0486868686866001611467565b5f61077c82611b01565b600180545f9182610be383613d01565b919050559050610bb63382612044565b5f610c01858585855f61205d565b90505b949350505050565b5f5f805160206141098339815191526001600160a01b038316610c44576040516322718ad960e21b81525f60048201526024016108aa565b6001600160a01b039092165f908152600390920160205250604090205490565b5f610c70836001541190565b610c7b57505f61077c565b505f9182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f546001600160a01b03163314610cd257604051630b56d23b60e41b81523360048201526024016108aa565b5f6040518060a001604052805f81526020015f1981526020015f81526020015f1981526020015f81525090505f5b82518110156109b457610d2d838281518110610d1e57610d1e613cd9565b60200260200101516001541190565b610d6757828181518110610d4357610d43613cd9565b602002602001015160405163500f73d960e01b81526004016108aa91815260200190565b5f610db6848381518110610d7d57610d7d613cd9565b602002602001015160035f886001600160a01b03166001600160a01b031681526020019081526020015f2061230c90919063ffffffff16565b90508015610e3357838281518110610dd057610dd0613cd9565b6020026020010151856001600160a01b03167fe9919c1157673d017b4e5eef8d4c012fadcf6ee40cf5f99a0912a0109b5d584260405160405180910390a3610e3385858481518110610e2457610e24613cd9565b60200260200101518586611bf6565b50600101610d00565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060915f80516020614109833981519152916107a190613ca1565b5f610c0185858585600161205d565b81610e9661085382610bc9565b5f5b82518110156109b4575f5483516001600160a01b0390911690636ec934da90859084908110610ec957610ec9613cd9565b60200260200101516040518263ffffffff1660e01b8152600401610efc91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610f17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3b9190613d19565b610f8257828181518110610f5157610f51613cd9565b602002602001015160405163e2a7bea360e01b81526004016108aa91906001600160a01b0391909116815260200190565b828181518110610f9457610f94613cd9565b60200260200101516001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ffb9190613d19565b156110435782818151811061101257611012613cd9565b602002602001015160405163b4e1115760e01b81526004016108aa91906001600160a01b0391909116815260200190565b5f84815260026020526040812084516001929086908590811061106857611068613cd9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f015f6101000a81548160ff0219169083151502179055508281815181106110b9576110b9613cd9565b60200260200101516001600160a01b0316847f42e38738c8d2e007a797548d288aea65537b98d212336f6fa33ca20c7a99088560405160405180910390a3600101610e98565b610842338383612317565b8161111761085382610bc9565b5f5b82518110156109b4575f61117960025f8781526020019081526020015f205f86858151811061114a5761114a613cd9565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20600b016123bd565b905061119f8585848151811061119157611191613cd9565b602002602001015183610846565b60025f8681526020019081526020015f205f8584815181106111c3576111c3613cd9565b6020908102919091018101516001600160a01b031682528101919091526040015f908120805460ff19168155600181018290556002810182905560038101829055600481018290556005810182905560068101829055600781018290556008810182905560098101829055600a810182905590600b8201818181611247828261339f565b50505050505083828151811061125f5761125f613cd9565b60200260200101516001600160a01b0316857fa328ee555a02ae133b939087dcc439417783329f687112f415290a4637f64ab760405160405180910390a350600101611119565b5f6112b2846001541190565b6112bd57505f610c04565b6001600160a01b0385165f9081526003602052604090206112de9085611cf5565b6112e957505f610c04565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff1661131957505f610c04565b5f8481526002602090815260408083206001600160a01b03871684529091529020610c0190600b01836123c9565b604080515f815260208101909152606090826001600160401b03811115611370576113706134dc565b6040519080825280602002602001820160405280156113a357816020015b606081526020019060019003908161138e5790505b5091505f5b83811015611424576113ff308686848181106113c6576113c6613cd9565b90506020028101906113d89190613d47565b856040516020016113eb93929190613d90565b6040516020818303038152906040526123ea565b83828151811061141157611411613cd9565b60209081029190910101526001016113a8565b505092915050565b6114378484846109e2565b6109b43385858585612453565b6001600160a01b0381165f90815260036020526040902060609061077c906123bd565b5f5f1986036114835761147c87868585612572565b905061157d565b61148f878787876112a6565b6114c65760405163c6c8526f60e01b8152600481018790526001600160a01b038087166024830152851660448201526064016108aa565b5f6114d388888886612624565b80519091508410806114e85750806020015184115b1561151d5780516020820151604051633e5d735760e21b815260048101879052602481019290925260448201526064016108aa565b5f61152a86888787612572565b905061154c826080015161153d83612652565b6115479190613db5565b612682565b92508160400151831015611566578160400151925061157a565b816060015183111561157a57816060015192505b50505b9695505050505050565b5f6115906126a7565b805490915060ff600160401b82041615906001600160401b03165f811580156115b65750825b90505f826001600160401b031660011480156115d15750303b155b9050811580156115df575080155b156115fd5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561162757845460ff60401b1916600160401b1785555b6116816040518060400160405280601081526020016f53697a6520436f6c6c656374696f6e7360801b8152506040518060400160405280601081526020016f53495a455f434f4c4c454354494f4e5360801b8152506126cf565b6116896126e1565b6116916126e1565b6116996126e1565b5f80546001600160a01b0319166001600160a01b03881617905583156116f957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b606061170c82611b01565b505f6117166126e9565b90505f8151116117345760405180602001604052805f8152506109db565b8061173e84612718565b60405160200161174f929190613dd4565b6040516020818303038152906040529392505050565b6060611772836001541190565b6117925760405163500f73d960e01b8152600481018490526024016108aa565b5f8381526002602090815260408083206001600160a01b038616845290915290205460ff166117e657604051631713bf1160e21b8152600481018490526001600160a01b03831660248201526044016108aa565b5f8381526002602090815260408083206001600160a01b038616845290915290206109db90600b016123bd565b5f546001600160a01b0316331461183f57604051630b56d23b60e41b81523360048201526024016108aa565b6118476133ba565b5f5b82518110156109b457611867838281518110610d1e57610d1e613cd9565b61187d57828181518110610d4357610d43613cd9565b5f6118cc84838151811061189357611893613cd9565b602002602001015160035f886001600160a01b03166001600160a01b031681526020019081526020015f206127a790919063ffffffff16565b9050801561193a578382815181106118e6576118e6613cd9565b6020026020010151856001600160a01b03167fd0b1806956ca744bd88a4e4057a137959cb88d8d4e7e8d793301cfdf7df7cb2b60405160405180910390a361193a85858481518110610e2457610e24613cd9565b50600101611849565b6001600160a01b039182165f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b8261199c61085382610bc9565b5f8481526002602090815260408083206001600160a01b038716845290915290205460ff166119f057604051631713bf1160e21b8152600481018590526001600160a01b03841660248201526044016108aa565b5f5b8251811015610975575f611a46848381518110611a1157611a11613cd9565b6020908102919091018101515f8981526002835260408082206001600160a01b038b16835290935291909120600b01906127b2565b90508015611aa957838281518110611a6057611a60613cd9565b60200260200101516001600160a01b0316856001600160a01b0316877f8e2f88c467ecc78e2adbbe6d65b6176668f4cc362a196a5c46d203a9db8d8fbe60405160405180910390a45b506001016119f2565b5f6001600160e01b031982166380ac58cd60e01b1480611ae257506001600160e01b03198216635b5e139f60e01b145b8061077c57506301ffc9a760e01b6001600160e01b031983161461077c565b5f80611b0c836127c6565b90506001600160a01b03811661077c57604051637e27328960e01b8152600481018490526024016108aa565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b610af083838360016127ff565b611b89838383612912565b610af0576001600160a01b038316611bb757604051637e27328960e01b8152600481018290526024016108aa565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016108aa565b5f6109db836001600160a01b038416612976565b611c01836001541190565b611c215760405163500f73d960e01b8152600481018490526024016108aa565b60408051808201825283815260208082018481526001600160a01b0388165f81815260048085528682208a8352855290869020945180518655808501516001870155808701516002870155606080820151600388015560809182015192870192909255925180516005870155938401516006860155838601516007860155830151600885015591015160099092019190915590518491907fb20b9722fd4401237d66274470a4daf19d973d3f3150edba3bcadf8467ed9b4290611ce79086908690613e02565b60405180910390a350505050565b5f81815260018301602052604081205415156109db565b5f80611d19858585612a59565b90506001600160a01b038116611da057611d9b845f8051602061414983398151915280545f8381527f645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0360205260408120829055600182018355919091527fa42f15e5d656f8155fd7419d740a6073999f19cd6e061449ce4a257150545bf20155565b611dc3565b846001600160a01b0316816001600160a01b031614611dc357611dc38185612b5b565b6001600160a01b038516611ddf57611dda84612bf2565b610c04565b846001600160a01b0316816001600160a01b031614610c0457610c048585612cbf565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611e8857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611e7c5f80516020614129833981519152546001600160a01b031690565b6001600160a01b031614155b15611ea65760405163703e46dd60e11b815260040160405180910390fd5b565b5f8054604051632474521560e21b8152600481018390523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015611ef5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f199190613d19565b6108425760405163e2517d3f60e01b8152336004820152602481018290526044016108aa565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f99575060408051601f3d908101601f19168201909252611f9691810190613e72565b60015b611fc157604051634c9c8ce360e01b81526001600160a01b03831660048201526024016108aa565b5f805160206141298339815191528114611ff157604051632a87526960e21b8152600481018290526024016108aa565b610af08383612d17565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ea65760405163703e46dd60e11b815260040160405180910390fd5b610842828260405180602001604052805f815250612d6c565b6001600160a01b0385165f908152600360205260408120815b61207f82612d83565b811015612213575f6120918383612d8c565b5f8181526002602090815260408083206001600160a01b038c16845290915290205490915060ff166120c3575061220b565b5f8181526002602090815260408083206001600160a01b038b1684529091528120600b01905b6120f282612d83565b811015612207575f6121048383612d8c565b9050612112818b8a15612d97565b1561211d57506121ff565b306001600160a01b031663c260d2068d868d858e8e156040518763ffffffff1660e01b815260040161215496959493929190613e89565b602060405180830381865afa92505050801561218d575060408051601f3d908101601f1916820190925261218a91810190613e72565b60015b6121c6573d8080156121ba576040519150601f19603f3d011682016040523d82523d5f602084013e6121bf565b606091505b50506121fd565b8880156121d357508b8110155b806121e75750881580156121e75750808c10155b156121fb575f975050505050505050610b07565b505b505b6001016120e9565b5050505b600101612076565b5061222087868515612d97565b1561222f576001915050610b07565b604051636130690360e11b8152309063c260d2069061225e908a905f19908a905f908b908b1590600401613e89565b602060405180830381865afa925050508015612297575060408051601f3d908101601f1916820190925261229491810190613e72565b60015b6122d0573d8080156122c4576040519150601f19603f3d011682016040523d82523d5f602084013e6122c9565b606091505b5050612302565b8380156122dd5750868110155b806122f15750831580156122f15750808710155b15612300575f92505050610b07565b505b6001915050610b07565b5f6109db8383612e6d565b5f805160206141098339815191526001600160a01b03831661235757604051630b61174360e31b81526001600160a01b03841660048201526024016108aa565b6001600160a01b038481165f818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611ce7565b60605f6109db83612eb9565b6001600160a01b0381165f90815260018301602052604081205415156109db565b60605f80846001600160a01b0316846040516124069190613ec3565b5f60405180830381855af49150503d805f811461243e576040519150601f19603f3d011682016040523d82523d5f602084013e612443565b606091505b5091509150610b07858383612f12565b6001600160a01b0383163b1561097557604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290612495908890889087908790600401613ede565b6020604051808303815f875af19250505080156124cf575060408051601f3d908101601f191682019092526124cc91810190613f10565b60015b612536573d8080156124fc576040519150601f19603f3d011682016040523d82523d5f602084013e612501565b606091505b5080515f0361252e57604051633250574960e11b81526001600160a01b03851660048201526024016108aa565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146116f957604051633250574960e11b81526001600160a01b03851660048201526024016108aa565b5f81156125ef57604051620d37ab60e81b81526001600160a01b03868116600483015260248201859052851690630d37ab00906044015b602060405180830381865afa1580156125c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e89190613e72565b9050610c04565b604051632b59bd9960e01b81526001600160a01b03868116600483015260248201859052851690632b59bd99906044016125a9565b61262c6133ba565b612637858484612f6e565b90506126428161304b565b15610c0457610c0185858461308a565b5f6001600160ff1b0382111561267e5760405163123baf0360e11b8152600481018390526024016108aa565b5090565b5f8082121561267e57604051635467221960e11b8152600481018390526024016108aa565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0061077c565b6126d7613125565b610842828261314a565b611ea6613125565b60606126f446612718565b6040516020016127049190613f2b565b604051602081830303815290604052905090565b60605f6127248361317a565b60010190505f816001600160401b03811115612742576127426134dc565b6040519080825280601f01601f19166020018201604052801561276c576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461277657509392505050565b5f6109db8383612976565b5f6109db836001600160a01b038416612e6d565b5f9081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b5f80516020614109833981519152818061282157506001600160a01b03831615155b156128e2575f61283085611b01565b90506001600160a01b0384161580159061285c5750836001600160a01b0316816001600160a01b031614155b801561286f575061286d8185611943565b155b156128985760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016108aa565b82156128e05784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5f93845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160a01b03831615801590610c045750826001600160a01b0316846001600160a01b0316148061294b575061294b8484611943565b80610c045750826001600160a01b031661296483611b38565b6001600160a01b031614949350505050565b5f8181526001830160205260408120548015612a50575f612998600183613d34565b85549091505f906129ab90600190613d34565b9050808214612a0a575f865f0182815481106129c9576129c9613cd9565b905f5260205f200154905080875f0184815481106129e9576129e9613cd9565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612a1b57612a1b613f87565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061077c565b5f91505061077c565b5f5f8051602061410983398151915281612a72856127c6565b90506001600160a01b03841615612a8e57612a8e818587611b7e565b6001600160a01b03811615612aca57612aa95f865f806127ff565b6001600160a01b0381165f908152600383016020526040902080545f190190555b6001600160a01b03861615612afa576001600160a01b0386165f9081526003830160205260409020805460010190555b5f85815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b5f805160206140e98339815191525f612b7384610c0c565b5f8481526001840160209081526040808320546001600160a01b03891684529186905290912091925090818314612bcb575f838152602082815260408083205485845281842081905583526001870190915290208290555b5f948552600190930160209081526040808620869055928552929092528220919091555050565b5f80516020614149833981519152545f805160206140e9833981519152905f90612c1e90600190613d34565b5f848152600384016020526040812054600285018054939450909284908110612c4957612c49613cd9565b905f5260205f200154905080846002018381548110612c6a57612c6a613cd9565b5f91825260208083209091019290925582815260038601909152604080822084905586825281205560028401805480612ca557612ca5613f87565b600190038181905f5260205f20015f905590555050505050565b5f805160206140e98339815191525f6001612cd985610c0c565b612ce39190613d34565b6001600160a01b039094165f9081526020838152604080832087845282528083208690559482526001909301909252502055565b612d2082613251565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612d6457610af082826123ea565b6108426132b4565b612d7683836132d3565b610af0335f858585612453565b5f61077c825490565b5f6109db8383613334565b5f81612e0557604051630cfa9a4960e01b81526001600160a01b038581166004830152841690630cfa9a4990602401602060405180830381865afa158015612de1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dda9190613d19565b60405163044ce7c360e41b81526001600160a01b0385811660048301528416906344ce7c3090602401602060405180830381865afa158015612e49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c049190613d19565b5f818152600183016020526040812054612eb257508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561077c565b505f61077c565b6060815f01805480602002602001604051908101604052809291908181526020018280548015612f0657602002820191905f5260205f20905b815481526020019060010190808311612ef2575b50505050509050919050565b606082612f2757612f228261335a565b6109db565b8151158015612f3e57506001600160a01b0384163b155b15612f6757604051639996b31560e01b81526001600160a01b03851660048201526024016108aa565b50806109db565b612f766133ba565b81612fe35760405163c421a75960e01b81526001600160a01b03858116600483015284169063c421a7599060240160a060405180830381865afa158015612fbf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dda9190613f9b565b604051630264211160e11b81526001600160a01b0385811660048301528416906304c842229060240160a060405180830381865afa158015613027573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c049190613f9b565b80515f9015801561305e57506020820151155b801561306c57506040820151155b801561307a57506060820151155b801561077c575050608001511590565b6130926133ba565b816130c1576001600160a01b0384165f90815260046020908152604080832086845290915290206005016130e4565b6001600160a01b0384165f90815260046020908152604080832086845290915290205b6040805160a0810182528254815260018301546020820152600283015491810191909152600382015460608201526004909101546080820152949350505050565b61312d613386565b611ea657604051631afcd79f60e31b815260040160405180910390fd5b613152613125565b5f805160206141098339815191528061316b848261402d565b50600181016109b4838261402d565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106131b85772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106131e4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061320257662386f26fc10000830492506010015b6305f5e100831061321a576305f5e100830492506008015b612710831061322e57612710830492506004015b60648310613240576064830492506002015b600a831061077c5760010192915050565b806001600160a01b03163b5f0361328657604051634c9c8ce360e01b81526001600160a01b03821660048201526024016108aa565b5f8051602061412983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b3415611ea65760405163b398979f60e01b815260040160405180910390fd5b6001600160a01b0382166132fc57604051633250574960e11b81525f60048201526024016108aa565b5f61330883835f611d0c565b90506001600160a01b03811615610af0576040516339e3563760e11b81525f60048201526024016108aa565b5f825f01828154811061334957613349613cd9565b905f5260205f200154905092915050565b80511561336a5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b5f61338f6126a7565b54600160401b900460ff16919050565b5080545f8255905f5260205f209081019061338391906133e4565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5b8082111561267e575f81556001016133e5565b6001600160e01b031981168114613383575f80fd5b5f6020828403121561341d575f80fd5b81356109db816133f8565b5f5b8381101561344257818101518382015260200161342a565b50505f910152565b5f8151808452613461816020860160208601613428565b601f01601f19169290920160200192915050565b602081525f6109db602083018461344a565b5f60208284031215613497575f80fd5b5035919050565b6001600160a01b0381168114613383575f80fd5b5f80604083850312156134c3575f80fd5b82356134ce8161349e565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715613512576135126134dc565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613540576135406134dc565b604052919050565b5f6001600160401b03821115613560576135606134dc565b5060051b60200190565b5f805f6060848603121561357c575f80fd5b8335925060208085013561358f8161349e565b925060408501356001600160401b038111156135a9575f80fd5b8501601f810187136135b9575f80fd5b80356135cc6135c782613548565b613518565b81815260059190911b820183019083810190898311156135ea575f80fd5b928401925b828410156136115783356136028161349e565b825292840192908401906135ef565b80955050505050509250925092565b5f60a08284031215613630575f80fd5b6136386134f0565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f805f806101808587031215613680575f80fd5b843561368b8161349e565b9350602085013592506136a18660408701613620565b91506136b08660e08701613620565b905092959194509250565b5f805f606084860312156136cd575f80fd5b83356136d88161349e565b925060208401356136e88161349e565b929592945050506040919091013590565b5f805f805f60a0868803121561370d575f80fd5b85356137188161349e565b945060208601359350604086013561372f8161349e565b9250606086013561373f8161349e565b949793965091946080013592915050565b5f82601f83011261375f575f80fd5b81356001600160401b03811115613778576137786134dc565b61378b601f8201601f1916602001613518565b81815284602083860101111561379f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156137cc575f80fd5b82356137d78161349e565b915060208301356001600160401b038111156137f1575f80fd5b6137fd85828601613750565b9150509250929050565b5f805f806080858703121561381a575f80fd5b84356138258161349e565b935060208501359250604085013561383c8161349e565b9396929550929360600135925050565b5f6020828403121561385c575f80fd5b81356109db8161349e565b5f8060408385031215613878575f80fd5b82359150602083013561388a8161349e565b809150509250929050565b5f80604083850312156138a6575f80fd5b82356138b18161349e565b91506020838101356001600160401b038111156138cc575f80fd5b8401601f810186136138dc575f80fd5b80356138ea6135c782613548565b81815260059190911b82018301908381019088831115613908575f80fd5b928401925b828410156139265783358252928401929084019061390d565b80955050505050509250929050565b5f8060408385031215613946575f80fd5b823591506020808401356001600160401b03811115613963575f80fd5b8401601f81018613613973575f80fd5b80356139816135c782613548565b81815260059190911b8201830190838101908883111561399f575f80fd5b928401925b828410156139265783356139b78161349e565b825292840192908401906139a4565b8015158114613383575f80fd5b5f80604083850312156139e4575f80fd5b82356139ef8161349e565b9150602083013561388a816139c6565b5f805f8060808587031215613a12575f80fd5b8435613a1d8161349e565b9350602085013592506040850135613a348161349e565b91506060850135613a448161349e565b939692955090935050565b5f8060208385031215613a60575f80fd5b82356001600160401b0380821115613a76575f80fd5b818501915085601f830112613a89575f80fd5b813581811115613a97575f80fd5b8660208260051b8501011115613aab575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015613b1257603f19888603018452613b0085835161344a565b94509285019290850190600101613ae4565b5092979650505050505050565b5f805f8060808587031215613b32575f80fd5b8435613b3d8161349e565b93506020850135613b4d8161349e565b92506040850135915060608501356001600160401b03811115613b6e575f80fd5b613b7a87828801613750565b91505092959194509250565b602080825282518282018190525f9190848201906040850190845b81811015613bbd57835183529284019291840191600101613ba1565b50909695505050505050565b5f805f805f8060c08789031215613bde575f80fd5b8635613be98161349e565b9550602087013594506040870135613c008161349e565b93506060870135613c108161349e565b92506080870135915060a0870135613c27816139c6565b809150509295509295509295565b602080825282518282018190525f9190848201906040850190845b81811015613bbd5783516001600160a01b031683529284019291840191600101613c50565b5f8060408385031215613c86575f80fd5b8235613c918161349e565b9150602083013561388a8161349e565b600181811c90821680613cb557607f821691505b602082108103613cd357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201613d1257613d12613ced565b5060010190565b5f60208284031215613d29575f80fd5b81516109db816139c6565b8181038181111561077c5761077c613ced565b5f808335601e19843603018112613d5c575f80fd5b8301803591506001600160401b03821115613d75575f80fd5b602001915036819003821315613d89575f80fd5b9250929050565b828482375f8382015f81528351613dab818360208801613428565b0195945050505050565b8082018281125f83128015821682158216171561142457611424613ced565b5f8351613de5818460208801613428565b835190830190613df9818360208801613428565b01949350505050565b6101408101613e3c828580518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b825160a0830152602083015160c0830152604083015160e0830152606083015161010083015260808301516101208301526109db565b5f60208284031215613e82575f80fd5b5051919050565b6001600160a01b0396871681526020810195909552928516604085015293166060830152608082019290925290151560a082015260c00190565b5f8251613ed4818460208701613428565b9190910192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90610b049083018461344a565b5f60208284031215613f20575f80fd5b81516109db816133f8565b7f68747470733a2f2f6170692e73697a652e6372656469742f636f6c6c656374698152636f6e732f60e01b60208201525f8251613f6f816024850160208701613428565b602f60f81b6024939091019283015250602501919050565b634e487b7160e01b5f52603160045260245ffd5b5f60a08284031215613fab575f80fd5b613fb36134f0565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b601f821115610af057805f5260205f20601f840160051c8101602085101561400e5750805b601f840160051c820191505b81811015610975575f815560010161401a565b81516001600160401b03811115614046576140466134dc565b61405a816140548454613ca1565b84613fe9565b602080601f83116001811461408d575f84156140765750858301515b5f19600386901b1c1916600185901b1785556116f9565b5f85815260208120601f198616915b828110156140bb5788860151825594840194600190910190840161409c565b50858210156140d857878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed0080bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed02a264697066735822122021e4470df07f7e75ac6571ab49f1e05aad8ab9ac39d9d4eb5611acb5bb313ea064736f6c63430008170033"; + +type CollectionsManagerConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: CollectionsManagerConstructorParams, +): xs is ConstructorParameters => xs.length > 1; + +export class CollectionsManager__factory extends ContractFactory { + constructor(...args: CollectionsManagerConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + overrides?: Overrides & { from?: string }, + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + override getDeployTransaction( + overrides?: Overrides & { from?: string }, + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + override attach(address: string): CollectionsManager { + return super.attach(address) as CollectionsManager; + } + override connect(signer: Signer): CollectionsManager__factory { + return super.connect(signer) as CollectionsManager__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): CollectionsManagerInterface { + return new utils.Interface(_abi) as CollectionsManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider, + ): CollectionsManager { + return new Contract(address, _abi, signerOrProvider) as CollectionsManager; + } +} diff --git a/src/v1.8/types/ethers-contracts/factories/Errors__factory.ts b/src/v1.8/types/ethers-contracts/factories/Errors__factory.ts index cb55b87..839f01d 100644 --- a/src/v1.8/types/ethers-contracts/factories/Errors__factory.ts +++ b/src/v1.8/types/ethers-contracts/factories/Errors__factory.ts @@ -1082,7 +1082,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220aadd8a5fb82bd5973776a712565e6ac19acf176ac6e42df2c717c4cc081059f564736f6c63430008170033"; + "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220bac3c3a566b687daff2d02589528007584e3641e0cf61c439ebd7c851744124764736f6c63430008170033"; type ErrorsConstructorParams = | [signer?: Signer] diff --git a/src/v1.8/types/ethers-contracts/factories/SizeFactory__factory.ts b/src/v1.8/types/ethers-contracts/factories/SizeFactory__factory.ts index a654f08..723ba7b 100644 --- a/src/v1.8/types/ethers-contracts/factories/SizeFactory__factory.ts +++ b/src/v1.8/types/ethers-contracts/factories/SizeFactory__factory.ts @@ -741,40 +741,6 @@ const _abi = [ ], stateMutability: "view", }, - { - type: "function", - name: "onERC721Received", - inputs: [ - { - name: "", - type: "address", - internalType: "address", - }, - { - name: "", - type: "address", - internalType: "address", - }, - { - name: "", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "bytes", - internalType: "bytes", - }, - ], - outputs: [ - { - name: "", - type: "bytes4", - internalType: "bytes4", - }, - ], - stateMutability: "nonpayable", - }, { type: "function", name: "proxiableUUID", @@ -788,39 +754,6 @@ const _abi = [ ], stateMutability: "view", }, - { - type: "function", - name: "reinitialize", - inputs: [ - { - name: "_collectionsManager", - type: "address", - internalType: "contract ICollectionsManager", - }, - { - name: "_users", - type: "address[]", - internalType: "address[]", - }, - { - name: "_curator", - type: "address", - internalType: "address", - }, - { - name: "_rateProvider", - type: "address", - internalType: "address", - }, - { - name: "_collectionMarkets", - type: "address[]", - internalType: "contract ISize[]", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, { type: "function", name: "renounceRole", @@ -921,6 +854,165 @@ const _abi = [ outputs: [], stateMutability: "nonpayable", }, + { + type: "function", + name: "setUserCollectionCopyLimitOrderConfigs", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "copyLoanOfferConfig", + type: "tuple", + internalType: "struct CopyLimitOrderConfig", + components: [ + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "offsetAPR", + type: "int256", + internalType: "int256", + }, + ], + }, + { + name: "copyBorrowOfferConfig", + type: "tuple", + internalType: "struct CopyLimitOrderConfig", + components: [ + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "offsetAPR", + type: "int256", + internalType: "int256", + }, + ], + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setUserCollectionCopyLimitOrderConfigsOnBehalfOf", + inputs: [ + { + name: "collectionId", + type: "uint256", + internalType: "uint256", + }, + { + name: "copyLoanOfferConfig", + type: "tuple", + internalType: "struct CopyLimitOrderConfig", + components: [ + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "offsetAPR", + type: "int256", + internalType: "int256", + }, + ], + }, + { + name: "copyBorrowOfferConfig", + type: "tuple", + internalType: "struct CopyLimitOrderConfig", + components: [ + { + name: "minTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxTenor", + type: "uint256", + internalType: "uint256", + }, + { + name: "minAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "maxAPR", + type: "uint256", + internalType: "uint256", + }, + { + name: "offsetAPR", + type: "int256", + internalType: "int256", + }, + ], + }, + { + name: "onBehalfOf", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, { type: "function", name: "sizeImplementation", @@ -1433,7 +1525,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051613d52620001005f395f8181612399015281816123c201526125050152613d525ff3fe60806040526004361061025f575f3560e01c806381de274c1161013f578063ad3cb1cc116100b3578063d152e23611610078578063d152e23614610784578063d547741f146107a3578063e8d353c7146107c2578063eb44fdd3146107e1578063ec2c901614610800578063f0fb716f14610821575f80fd5b8063ad3cb1cc146106d8578063b1ef804d14610708578063b4cd6bd114610727578063c4d66de814610746578063c8fb624714610765575f80fd5b80639e42bfa3116101045780639e42bfa3146106285780639feffdb014610647578063a217fddf14610666578063a78ec6ae14610679578063a7b2b31014610698578063ac9650d8146106ac575f80fd5b806381de274c1461058157806386eeeb5a146105ac57806391c769ce146105cb57806391d14854146105ea578063973cf86714610609575f80fd5b8063495e6d89116101d65780635fb7f10c1161019b5780635fb7f10c146104a8578063678b9bad146104c75780636ec934da146104e6578063732218f9146105055780637643d7ec146105245780637b8dedad14610545575f80fd5b8063495e6d891461040e5780634f1ef2861461042d57806352d1902d1461044057806354fd4d50146104545780635ec4954414610489575f80fd5b8063248a9ca311610227578063248a9ca31461035157806327fa35c31461037e5780632f2ff15d1461039257806336568abe146103b157806337c11b2a146103d05780634481f4d1146103ef575f80fd5b806301a6c8721461026357806301ffc9a7146102845780631286a2dc146102b8578063150b7a02146102ef5780631e4fcddb14610332575b5f80fd5b34801561026e575f80fd5b5061028261027d366004612b30565b610840565b005b34801561028f575f80fd5b506102a361029e366004612b4b565b6108a6565b60405190151581526020015b60405180910390f35b3480156102c3575f80fd5b506007546102d7906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b3480156102fa575f80fd5b50610319610309366004612c67565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016102af565b34801561033d575f80fd5b5061028261034c366004612b30565b6108dc565b34801561035c575f80fd5b5061037061036b366004612cce565b610969565b6040519081526020016102af565b348015610389575f80fd5b50610370610989565b34801561039d575f80fd5b506102826103ac366004612ce5565b610998565b3480156103bc575f80fd5b506102826103cb366004612ce5565b6109ba565b3480156103db575f80fd5b50600a546102d7906001600160a01b031681565b3480156103fa575f80fd5b50610282610409366004612da5565b6109f2565b348015610419575f80fd5b50610370610428366004612e95565b6112ae565b61028261043b366004612eec565b611343565b34801561044b575f80fd5b50610370611362565b34801561045f575f80fd5b506040805180820190915260048152630ec625c760e31b60208201525b6040516102af9190612f85565b348015610494575f80fd5b5061047c6104a3366004612f97565b61137d565b3480156104b3575f80fd5b506103706104c2366004612e95565b6113fc565b3480156104d2575f80fd5b506102a36104e1366004613014565b61144c565b3480156104f1575f80fd5b506102a3610500366004612b30565b6114d8565b348015610510575f80fd5b5061028261051f3660046130b5565b6114e3565b34801561052f575f80fd5b50610538611591565b6040516102af91906130f8565b348015610550575f80fd5b5061037061055f36600461315a565b600860209081525f938452604080852082529284528284209052825290205481565b34801561058c575f80fd5b5061037061059b366004612b30565b60096020525f908152604090205481565b3480156105b7575f80fd5b506102a36105c6366004613199565b6118bf565b3480156105d6575f80fd5b506102826105e53660046131d9565b61192f565b3480156105f5575f80fd5b506102a3610604366004612ce5565b61193a565b348015610614575f80fd5b506006546102d7906001600160a01b031681565b348015610633575f80fd5b50610282610642366004613203565b611970565b348015610652575f80fd5b506102a3610661366004613014565b61197d565b348015610671575f80fd5b506103705f81565b348015610684575f80fd5b506102a3610693366004613234565b6119c5565b3480156106a3575f80fd5b50610282611a2a565b3480156106b7575f80fd5b506106cb6106c6366004613272565b611a75565b6040516102af91906132e0565b3480156106e3575f80fd5b5061047c604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610713575f80fd5b506102826107223660046130b5565b611b5a565b348015610732575f80fd5b50610282610741366004612b30565b611ba5565b348015610751575f80fd5b50610282610760366004612b30565b611c32565b348015610770575f80fd5b5061028261077f366004613203565b611dc3565b34801561078f575f80fd5b506102d761079e366004613348565b611dcd565b3480156107ae575f80fd5b506102826107bd366004612ce5565b611e8a565b3480156107cd575f80fd5b506102d76107dc366004613401565b611ea6565b3480156107ec575f80fd5b506102d76107fb366004612cce565b611f85565b34801561080b575f80fd5b50610814611f90565b6040516102af9190613470565b34801561082c575f80fd5b506102d761083b366004613498565b612025565b5f61084a81612109565b600a546040516001600160a01b038085169216907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae905f90a350600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160e01b03198216637965db0b60e01b14806108d657506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6108e681612109565b6001600160a01b03821661090d5760405163de0ce17d60e01b815260040160405180910390fd5b6007546040516001600160a01b038085169216907faefd875bf3940c57f185da0affbb82ce03656890d6e1d29310e8b4bf9d20b7c1905f90a350600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f9081525f80516020613cfd833981519152602052604090206001015490565b5f6109935f612113565b905090565b6109a182610969565b6109aa81612109565b6109b4838361211c565b50505050565b6001600160a01b03811633146109e35760405163334bd91960e11b815260040160405180910390fd5b6109ed82826121bd565b505050565b5f6109fc81612109565b612a305f610a08612236565b8054909150600160401b900460ff1680610a2f575080546001600160401b03808416911610155b15610a4d5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556001600160a01b038816610a955760405163de0ce17d60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b038a169081179091556040515f907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae908290a36001600160a01b0386161580610afa57506001600160a01b038516155b61125d576040805160018082528183019092525f91602080830190803683375050600a546040805163191fc6a760e21b815290519394506001600160a01b039091169263647f1a9c9250600480830192602092919082900301815f875af1158015610b67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8b9190613503565b815f81518110610b9d57610b9d61351a565b6020026020010181815250505f85516001600160401b03811115610bc357610bc3612b82565b604051908082528060200260200182016040528015610c2157816020015b610c0e6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b815260200190600190039081610be15790505b5090505f86516001600160401b03811115610c3e57610c3e612b82565b604051908082528060200260200182016040528015610c9c57816020015b610c896040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b815260200190600190039081610c5c5790505b5090505f5b8751811015610d40576040518060a001604052805f81526020015f81526020015f81526020015f8152602001600160ff1b815250838281518110610ce757610ce761351a565b60200260200101819052506040518060a001604052805f81526020015f1981526020015f81526020015f1981526020015f815250828281518110610d2d57610d2d61351a565b6020908102919091010152600101610ca1565b50600a5483516001600160a01b03909116906315d5cf999085905f90610d6857610d6861351a565b60200260200101518984866040518563ffffffff1660e01b8152600401610d929493929190613587565b5f604051808303815f87803b158015610da9575f80fd5b505af1158015610dbb573d5f803e3d5ffd5b505f925060019150610dca9050565b604051908082528060200260200182016040528015610df3578160200160208202803683370190505b50905088815f81518110610e0957610e0961351a565b60200260200101906001600160a01b031690816001600160a01b0316815250505f5b8851811015610ed557600a5485516001600160a01b039091169063eb379a589087905f90610e5b57610e5b61351a565b60200260200101518b8481518110610e7557610e7561351a565b6020026020010151856040518463ffffffff1660e01b8152600401610e9c939291906135d0565b5f604051808303815f87803b158015610eb3575f80fd5b505af1158015610ec5573d5f803e3d5ffd5b505060019092019150610e2b9050565b506040805160028082526060820183525f926020830190803683370190505090506002815f81518110610f0a57610f0a61351a565b6020026020010190600c811115610f2357610f23613631565b9081600c811115610f3657610f36613631565b81525050600381600181518110610f4f57610f4f61351a565b6020026020010190600c811115610f6857610f68613631565b9081600c811115610f7b57610f7b613631565b9052505f5b8c518110156111c657600a548d516001600160a01b03909116906393c0d3f3908f9084908110610fb257610fb261351a565b6020026020010151886040518363ffffffff1660e01b8152600401610fd8929190613674565b5f604051808303815f87803b158015610fef575f80fd5b505af1158015611001573d5f803e3d5ffd5b50505050611031308e838151811061101b5761101b61351a565b602002602001015161102c8561225e565b6122a6565b5f5b8a5181101561119857611044612ac3565b8e83815181106110565761105661351a565b6020908102919091018101516001600160a01b0316908201528b518c90839081106110835761108361351a565b60200260200101516001600160a01b03166353e043d4826040518263ffffffff1660e01b81526004016110b6919061374a565b5f604051808303815f87803b1580156110cd575f80fd5b505af11580156110df573d5f803e3d5ffd5b505050506110eb612ac3565b8f84815181106110fd576110fd61351a565b6020908102919091018101516001600160a01b0316908201528c518d908490811061112a5761112a61351a565b60200260200101516001600160a01b0316634fd9a8a5826040518263ffffffff1660e01b815260040161115d919061374a565b5f604051808303815f87803b158015611174575f80fd5b505af1158015611186573d5f803e3d5ffd5b50506001909401935061103392505050565b506111be308e83815181106111af576111af61351a565b602002602001015161102c5f90565b600101610f80565b508c6001600160a01b03166342842e0e308d885f815181106111ea576111ea61351a565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064015f604051808303815f87803b158015611241575f80fd5b505af1158015611253573d5f803e3d5ffd5b5050505050505050505b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b600a5460405163495e6d8960e01b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f92169063495e6d899060a4015b602060405180830381865afa158015611315573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113399190613503565b9695505050505050565b61134b61238e565b61135482612434565b61135e828261243e565b5050565b5f61136b6124fa565b505f80516020613cdd83398151915290565b6060611388846114d8565b6113b55760405163e2a7bea360e01b81526001600160a01b03851660048201526024015b60405180910390fd5b6113f48484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061254392505050565b949350505050565b600a546040516317edfc4360e21b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f921690635fb7f10c9060a4016112fa565b600a5460405163678b9bad60e01b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f92169063678b9bad906084015b602060405180830381865afa1580156114ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114cf919061375c565b95945050505050565b5f6108d68183612550565b6114ef3382600b6118bf565b61152e573381600b5b60405163062709f360e41b81526001600160a01b03938416600482015292909116602483015260ff1660448201526064016113ac565b600a546040516301bc3d7160e71b81526001600160a01b039091169063de1eb880906115609084908690600401613674565b5f604051808303815f87803b158015611577575f80fd5b505af1158015611589573d5f803e3d5ffd5b505050505050565b606061159c5f612113565b6001600160401b038111156115b3576115b3612b82565b6040519080825280602002602001820160405280156115e657816020015b60608152602001906001900390816115d15790505b5090505f5b81518110156118bb575f6115ff8183612571565b90505f6116796064836001600160a01b0316637c90a6ca6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611643573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611667919061377b565b60200151670de0b6b3a764000061257c565b9050816001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa1580156116b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116dc91906137f3565b604001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561171a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261174191908101906138ac565b826001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa15801561177e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117a291906137f3565b606001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156117e0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261180791908101906138ac565b61181083612588565b846001600160a01b03166354fd4d506040518163ffffffff1660e01b81526004015f60405180830381865afa15801561184b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261187291908101906138ac565b6040516020016118859493929190613914565b6040516020818303038152906040528484815181106118a6576118a661351a565b602090810291909101015250506001016115eb565b5090565b5f826001600160a01b0316846001600160a01b0316036118e157506001611928565b6001600160a01b038084165f8181526009602090815260408083205480845260088352818420958a16845294825280832093835292905220546119249084612617565b9150505b9392505050565b61135e8233836122a6565b5f9182525f80516020613cfd833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61197a81336114e3565b50565b600a546040516309feffdb60e41b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f921690639feffdb090608401611490565b5f826001600160a01b0316846001600160a01b0316036119e757506001611928565b506001600160a01b038281165f81815260096020908152604080832054835260088252808320948816835293815283822092825291909152205481168114611928565b60405133907fecbee29490a7e5456f4e3aab0700477764e3f16dda5a21ea92f43f1cfcb15799905f90a2335f908152600960205260408120805491611a6e836139b4565b9190505550565b604080515f815260208101909152606090826001600160401b03811115611a9e57611a9e612b82565b604051908082528060200260200182016040528015611ad157816020015b6060815260200190600190039081611abc5790505b5091505f5b83811015611b5257611b2d30868684818110611af457611af461351a565b9050602002810190611b0691906139df565b85604051602001611b1993929190613a28565b604051602081830303815290604052612639565b838281518110611b3f57611b3f61351a565b6020908102919091010152600101611ad6565b505092915050565b611b663382600b6118bf565b611b73573381600b6114f8565b600a546040516393c0d3f360e01b81526001600160a01b03909116906393c0d3f3906115609084908690600401613674565b5f611baf81612109565b6001600160a01b038216611bd65760405163de0ce17d60e01b815260040160405180910390fd5b6006546040516001600160a01b038085169216907ffb3d0b43c5121de915eeb8fa2fb4bb792b6b05d5d6f3df7630aac9d9e8697312905f90a350600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f611c3b612236565b805490915060ff600160401b82041615906001600160401b03165f81158015611c615750825b90505f826001600160401b03166001148015611c7c5750303b155b905081158015611c8a575080155b15611ca85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611cd257845460ff60401b1916600160401b1785555b611cda6126a2565b611ce26126a2565b611cea6126a2565b611cf45f8761211c565b50611d1f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8761211c565b50611d4a7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab8761211c565b50611d757f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd240388761211c565b50831561158957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b61197a8133611b5a565b5f80611dd881612109565b60405163145b6cb960e11b815273__$8498e19059e8c9c59d07dfb635c44386c6$__906328b6d97290611e0f908690600401613a4d565b602060405180830381865af4158015611e2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4e9190613b2a565b6040519092506001600160a01b038316907f970cbcaabfe7c54976df22e530fb6ef3a9202796c410ae94972a9b109d5b2ca8905f90a250919050565b611e9382610969565b611e9c81612109565b6109b483836121bd565b5f80611eb181612109565b6007546040516302a8408560e11b81526001600160a01b03918216600482015233602482018190528683166044830152918516606482015273__$c583a0fe7c050ce40cdddde89e71ac1899$__90630550810a90608401602060405180830381865af4158015611f23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f479190613b2a565b6040519093506001600160a01b038416907f798adeb18dd44bd81e89d3ab4aa52d11e6d22b3ab80b11da6844ec0eda2a0810905f90a2505092915050565b5f6108d68183612571565b6060611f9b5f612113565b6001600160401b03811115611fb257611fb2612b82565b604051908082528060200260200182016040528015611fdb578160200160208202803683370190505b5090505f5b81518110156118bb57611ff35f82612571565b8282815181106120055761200561351a565b6001600160a01b0390921660209283029190910190910152600101611fe0565b5f8061203081612109565b60065460405163d41bcfc560e01b8152339173__$74708c40afd3f014cbcff13274aefc3e53$__9163d41bcfc591612080916001600160a01b039091169085908c908c908c908c90600401613c12565b602060405180830381865af415801561209b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120bf9190613b2a565b92506120cb5f846126aa565b506040516001600160a01b038416907ffa970ff5f178441bbe297db8d35a584c9bd6628b17b82d80dc8f5b80063102ca905f90a25050949350505050565b61197a81336126be565b5f6108d6825490565b5f5f80516020613cfd833981519152612135848461193a565b6121b4575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561216a3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506108d6565b5f9150506108d6565b5f5f80516020613cfd8339815191526121d6848461193a565b156121b4575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506108d6565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108d6565b5f80805b835181101561229f576122936122908583815181106122835761228361351a565b60200260200101516126f7565b90565b90911790600101612262565b5080611928565b6001600160a01b0383166122cd5760405163de0ce17d60e01b815260040160405180910390fd5b6122d681612714565b6122f657604051632e40743360e01b8152600481018290526024016113ac565b6001600160a01b0382165f9081526009602052604090205481846001600160a01b0316846001600160a01b03167f89733de2d64cea40de091169750607b26e8d46142312fba65fb6476c790bad498460405161235491815260200190565b60405180910390a45f9081526008602090815260408083206001600160a01b03968716845282528083209490951682529290925291902055565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061241457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124085f80516020613cdd833981519152546001600160a01b031690565b6001600160a01b031614155b156124325760405163703e46dd60e11b815260040160405180910390fd5b565b5f61135e81612109565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612498575060408051601f3d908101601f1916820190925261249591810190613503565b60015b6124c057604051634c9c8ce360e01b81526001600160a01b03831660048201526024016113ac565b5f80516020613cdd83398151915281146124f057604051632a87526960e21b8152600481018290526024016113ac565b6109ed838361272d565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146124325760405163703e46dd60e11b815260040160405180910390fd5b606061192883835f612782565b6001600160a01b0381165f9081526001830160205260408120541515611928565b5f6119288383612818565b5f6113f484848461283e565b60605f61259483612862565b60010190505f816001600160401b038111156125b2576125b2612b82565b6040519080825280601f01601f1916602001820160405280156125dc576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846125e657509392505050565b5f81600c81111561262a5761262a613631565b6001901b831615159392505050565b60605f80846001600160a01b0316846040516126559190613cc1565b5f60405180830381855af49150503d805f811461268d576040519150601f19603f3d011682016040523d82523d5f602084013e612692565b606091505b50915091506114cf858383612939565b61243261298e565b5f611928836001600160a01b0384166129b3565b6126c8828261193a565b61135e5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016113ac565b5f6108d682600c81111561270d5761270d613631565b6001901b90565b5f8061272360016110006139cc565b9092111592915050565b612736826129ff565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561277a576109ed8282612639565b61135e612a62565b6060814710156127ae5760405163cf47918160e01b8152476004820152602481018390526044016113ac565b5f80856001600160a01b031684866040516127c99190613cc1565b5f6040518083038185875af1925050503d805f8114612803576040519150601f19603f3d011682016040523d82523d5f602084013e612808565b606091505b5091509150611339868383612939565b5f825f01828154811061282d5761282d61351a565b905f5260205f200154905092915050565b5f825f19048411830215820261285b5763ad251c275f526004601cfd5b5091020490565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106128a05772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106128cc576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106128ea57662386f26fc10000830492506010015b6305f5e1008310612902576305f5e100830492506008015b612710831061291657612710830492506004015b60648310612928576064830492506002015b600a83106108d65760010192915050565b60608261294e5761294982612a81565b611928565b815115801561296557506001600160a01b0384163b155b1561229f57604051639996b31560e01b81526001600160a01b03851660048201526024016113ac565b612996612aaa565b61243257604051631afcd79f60e31b815260040160405180910390fd5b5f8181526001830160205260408120546129f857508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556108d6565b505f6108d6565b806001600160a01b03163b5f03612a3457604051634c9c8ce360e01b81526001600160a01b03821660048201526024016113ac565b5f80516020613cdd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156124325760405163b398979f60e01b815260040160405180910390fd5b805115612a915780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f612ab3612236565b54600160401b900460ff16919050565b6040518060400160405280612ad6612ae2565b81525f60209091015290565b60405180604001604052805f8152602001612b1760405180606001604052806060815260200160608152602001606081525090565b905290565b6001600160a01b038116811461197a575f80fd5b5f60208284031215612b40575f80fd5b813561192881612b1c565b5f60208284031215612b5b575f80fd5b81356001600160e01b031981168114611928575f80fd5b8035612b7d81612b1c565b919050565b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b0381118282101715612bb957612bb9612b82565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612be757612be7612b82565b604052919050565b5f6001600160401b03821115612c0757612c07612b82565b50601f01601f191660200190565b5f82601f830112612c24575f80fd5b8135612c37612c3282612bef565b612bbf565b818152846020838601011115612c4b575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f8060808587031215612c7a575f80fd5b8435612c8581612b1c565b93506020850135612c9581612b1c565b92506040850135915060608501356001600160401b03811115612cb6575f80fd5b612cc287828801612c15565b91505092959194509250565b5f60208284031215612cde575f80fd5b5035919050565b5f8060408385031215612cf6575f80fd5b823591506020830135612d0881612b1c565b809150509250929050565b5f6001600160401b03821115612d2b57612d2b612b82565b5060051b60200190565b5f82601f830112612d44575f80fd5b81356020612d54612c3283612d13565b8083825260208201915060208460051b870101935086841115612d75575f80fd5b602086015b84811015612d9a578035612d8d81612b1c565b8352918301918301612d7a565b509695505050505050565b5f805f805f60a08688031215612db9575f80fd5b8535612dc481612b1c565b94506020868101356001600160401b0380821115612de0575f80fd5b818901915089601f830112612df3575f80fd5b8135612e01612c3282612d13565b81815260059190911b8301840190848101908c831115612e1f575f80fd5b938501935b82851015612e46578435612e3781612b1c565b82529385019390850190612e24565b9850612e5791505060408a01612b72565b9550612e6560608a01612b72565b94506080890135925080831115612e7a575f80fd5b5050612e8888828901612d35565b9150509295509295909350565b5f805f805f60a08688031215612ea9575f80fd5b8535612eb481612b1c565b9450602086013593506040860135612ecb81612b1c565b92506060860135612edb81612b1c565b949793965091946080013592915050565b5f8060408385031215612efd575f80fd5b8235612f0881612b1c565b915060208301356001600160401b03811115612f22575f80fd5b612f2e85828601612c15565b9150509250929050565b5f5b83811015612f52578181015183820152602001612f3a565b50505f910152565b5f8151808452612f71816020860160208601612f38565b601f01601f19169290920160200192915050565b602081525f6119286020830184612f5a565b5f805f60408486031215612fa9575f80fd5b8335612fb481612b1c565b925060208401356001600160401b0380821115612fcf575f80fd5b818601915086601f830112612fe2575f80fd5b813581811115612ff0575f80fd5b876020828501011115613001575f80fd5b6020830194508093505050509250925092565b5f805f8060808587031215613027575f80fd5b843561303281612b1c565b935060208501359250604085013561304981612b1c565b9396929550929360600135925050565b5f82601f830112613068575f80fd5b81356020613078612c3283612d13565b8083825260208201915060208460051b870101935086841115613099575f80fd5b602086015b84811015612d9a578035835291830191830161309e565b5f80604083850312156130c6575f80fd5b82356001600160401b038111156130db575f80fd5b6130e785828601613059565b9250506020830135612d0881612b1c565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561314d57603f1988860301845261313b858351612f5a565b9450928501929085019060010161311f565b5092979650505050505050565b5f805f6060848603121561316c575f80fd5b83359250602084013561317e81612b1c565b9150604084013561318e81612b1c565b809150509250925092565b5f805f606084860312156131ab575f80fd5b83356131b681612b1c565b925060208401356131c681612b1c565b91506040840135600d811061318e575f80fd5b5f80604083850312156131ea575f80fd5b82356131f581612b1c565b946020939093013593505050565b5f60208284031215613213575f80fd5b81356001600160401b03811115613228575f80fd5b6113f484828501613059565b5f805f60608486031215613246575f80fd5b833561325181612b1c565b9250602084013561326181612b1c565b929592945050506040919091013590565b5f8060208385031215613283575f80fd5b82356001600160401b0380821115613299575f80fd5b818501915085601f8301126132ac575f80fd5b8135818111156132ba575f80fd5b8660208260051b85010111156132ce575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561314d57603f19888603018452613323858351612f5a565b94509285019290850190600101613307565b803563ffffffff81168114612b7d575f80fd5b5f6101408284031215613359575f80fd5b613361612b96565b61336a83612b72565b815261337860208401613335565b602082015261338960408401613335565b604082015261339a60608401612b72565b60608201526133ab60808401612b72565b60808201526133bc60a08401612b72565b60a08201526133cd60c08401612b72565b60c082015260e083013560e08201526101008084013581830152506101206133f6818501612b72565b908201529392505050565b5f8060408385031215613412575f80fd5b823561341d81612b1c565b91506020830135612d0881612b1c565b5f815180845260208085019450602084015f5b838110156134655781516001600160a01b031687529582019590820190600101613440565b509495945050505050565b602081525f611928602083018461342d565b5f60c08284031215613492575f80fd5b50919050565b5f805f808486036102608112156134ad575f80fd5b6134b78787613482565b945060a060bf19820112156134ca575f80fd5b60c086019350604061015f19820112156134e2575f80fd5b50610160850191506134f8866101a08701613482565b905092959194509250565b5f60208284031215613513575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561346557815180518852838101518489015260408082015190890152606080820151908901526080908101519088015260a09096019590820190600101613541565b848152608060208201525f61359f608083018661342d565b82810360408401526135b1818661352e565b905082810360608401526135c5818561352e565b979650505050505050565b5f60608201858352602060018060a01b038087166020860152606060408601528286518085526080870191506020880194505f5b81811015613622578551841683529484019491840191600101613604565b50909998505050505050505050565b634e487b7160e01b5f52602160045260245ffd5b5f815180845260208085019450602084015f5b8381101561346557815187529582019590820190600101613658565b6001600160a01b03831681526040602082018190525f906113f490830184613645565b5f815160408452805160408501526020808201519150604060608601528151606060808701526136ca60e0870182613645565b82840151607f19888303810160a08a0152815180845291850193505f929091908501905b8084101561370e57845182529385019360019390930192908501906136ee565b5060408601519550818982030160c08a015261372a8187613645565b978501516001600160a01b03169890940197909752509395945050505050565b602081525f6119286020830184613697565b5f6020828403121561376c575f80fd5b81518015158114611928575f80fd5b5f60a0828403121561378b575f80fd5b60405160a081018181106001600160401b03821117156137ad576137ad612b82565b806040525082518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b8051612b7d81612b1c565b5f610100808385031215613805575f80fd5b604051908101906001600160401b038211818310171561382757613827612b82565b8160405283518152602084015160208201526040840151915061384982612b1c565b81604082015261385b606085016137e8565b606082015261386c608085016137e8565b608082015261387d60a085016137e8565b60a082015261388e60c085016137e8565b60c082015261389f60e085016137e8565b60e0820152949350505050565b5f602082840312156138bc575f80fd5b81516001600160401b038111156138d1575f80fd5b8201601f810184136138e1575f80fd5b80516138ef612c3282612bef565b818152856020838501011115613903575f80fd5b6114cf826020830160208601612f38565b66029b4bd32903e160cd1b81525f8551613935816007850160208a01612f38565b8083019050620103e160ed1b806007830152865161395a81600a850160208b01612f38565b600a9201918201819052855161397781600d850160208a01612f38565b600d9201918201528351613992816010840160208801612f38565b016010019695505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f600182016139c5576139c56139a0565b5060010190565b818103818111156108d6576108d66139a0565b5f808335601e198436030181126139f4575f80fd5b8301803591506001600160401b03821115613a0d575f80fd5b602001915036819003821315613a21575f80fd5b9250929050565b828482375f8382015f81528351613a43818360208801612f38565b0195945050505050565b81516001600160a01b0316815261014081016020830151613a76602084018263ffffffff169052565b506040830151613a8e604084018263ffffffff169052565b506060830151613aa960608401826001600160a01b03169052565b506080830151613ac460808401826001600160a01b03169052565b5060a0830151613adf60a08401826001600160a01b03169052565b5060c0830151613afa60c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120808401516001600160a01b03811682850152611b52565b5f60208284031215613b3a575f80fd5b815161192881612b1c565b8035613b5081612b1c565b6001600160a01b0316825260208101356001600160401b038116808214613b75575f80fd5b80602085015250505050565b8035613b8c81612b1c565b6001600160a01b039081168352602082013590613ba882612b1c565b9081166020840152604082013590613bbf82612b1c565b9081166040840152606082013590613bd682612b1c565b9081166060840152608082013590613bed82612b1c565b908116608084015260a082013590613c0482612b1c565b80821660a085015250505050565b5f6102a08201905060018060a01b0380891683528088166020840152863560408401526020870135606084015260408701356080840152606087013560a0840152608087013560c084015260a0870135613c6b81612b1c565b1660e083015284356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152613cb36101a0830185613b45565b6135c56101e0830184613b81565b5f8251613cd2818460208701612f38565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220ae94056934e2696de55cf7257064a8703ba5a661409cee54886e7be27385a6c264736f6c63430008170033"; + "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051613208620001005f395f81816119ea01528181611a130152611b5601526132085ff3fe60806040526004361061025f575f3560e01c806386eeeb5a1161013f578063ad3cb1cc116100b3578063d152e23611610078578063d152e23614610762578063d547741f14610781578063e8d353c7146107a0578063eb44fdd3146107bf578063ec2c9016146107de578063f0fb716f146107ff575f80fd5b8063ad3cb1cc146106b6578063b1ef804d146106e6578063b4cd6bd114610705578063c4d66de814610724578063c8fb624714610743575f80fd5b80639e42bfa3116101045780639e42bfa3146106065780639feffdb014610625578063a217fddf14610644578063a78ec6ae14610657578063a7b2b31014610676578063ac9650d81461068a575f80fd5b806386eeeb5a1461056b57806388d765201461058a57806391c769ce146105a957806391d14854146105c8578063973cf867146105e7575f80fd5b806352d1902d116101d65780636ec934da1161019b5780636ec934da146104865780636ed41835146104a5578063732218f9146104c45780637643d7ec146104e35780637b8dedad1461050457806381de274c14610540575f80fd5b806352d1902d146103de57806354fd4d50146103f25780635ec49544146104295780635fb7f10c14610448578063678b9bad14610467575f80fd5b806327fa35c31161022757806327fa35c31461033b5780632f2ff15d1461034f57806336568abe1461036e57806337c11b2a1461038d578063495e6d89146103ac5780634f1ef286146103cb575f80fd5b806301a6c8721461026357806301ffc9a7146102845780631286a2dc146102b85780631e4fcddb146102ef578063248a9ca31461030e575b5f80fd5b34801561026e575f80fd5b5061028261027d36600461222c565b61081e565b005b34801561028f575f80fd5b506102a361029e366004612247565b610884565b60405190151581526020015b60405180910390f35b3480156102c3575f80fd5b506007546102d7906001600160a01b031681565b6040516001600160a01b0390911681526020016102af565b3480156102fa575f80fd5b5061028261030936600461222c565b6108ba565b348015610319575f80fd5b5061032d61032836600461227e565b610947565b6040519081526020016102af565b348015610346575f80fd5b5061032d610967565b34801561035a575f80fd5b50610282610369366004612295565b610976565b348015610379575f80fd5b50610282610388366004612295565b610998565b348015610398575f80fd5b50600a546102d7906001600160a01b031681565b3480156103b7575f80fd5b5061032d6103c63660046122c3565b6109d0565b6102826103d93660046123cf565b610a67565b3480156103e9575f80fd5b5061032d610a86565b3480156103fd575f80fd5b5060408051808201909152600681526576312e382e3160d01b60208201525b6040516102af91906124a8565b348015610434575f80fd5b5061041c6104433660046124ba565b610aa1565b348015610453575f80fd5b5061032d6104623660046122c3565b610b20565b348015610472575f80fd5b506102a3610481366004612537565b610b70565b348015610491575f80fd5b506102a36104a036600461222c565b610bf3565b3480156104b0575f80fd5b506102826104bf3660046125c8565b610bfe565b3480156104cf575f80fd5b506102826104de366004612680565b610c0a565b3480156104ee575f80fd5b506104f7610cb8565b6040516102af91906126c3565b34801561050f575f80fd5b5061032d61051e366004612725565b600860209081525f938452604080852082529284528284209052825290205481565b34801561054b575f80fd5b5061032d61055a36600461222c565b60096020525f908152604090205481565b348015610576575f80fd5b506102a3610585366004612764565b610fe6565b348015610595575f80fd5b506102826105a43660046127a4565b611056565b3480156105b4575f80fd5b506102826105c33660046127f4565b6110d8565b3480156105d3575f80fd5b506102a36105e2366004612295565b6110e3565b3480156105f2575f80fd5b506006546102d7906001600160a01b031681565b348015610611575f80fd5b5061028261062036600461281e565b611119565b348015610630575f80fd5b506102a361063f366004612537565b611126565b34801561064f575f80fd5b5061032d5f81565b348015610662575f80fd5b506102a361067136600461284f565b61116e565b348015610681575f80fd5b506102826111d3565b348015610695575f80fd5b506106a96106a436600461288d565b61121e565b6040516102af91906128fb565b3480156106c1575f80fd5b5061041c604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156106f1575f80fd5b50610282610700366004612680565b611303565b348015610710575f80fd5b5061028261071f36600461222c565b61134e565b34801561072f575f80fd5b5061028261073e36600461222c565b6113db565b34801561074e575f80fd5b5061028261075d36600461281e565b61156c565b34801561076d575f80fd5b506102d761077c366004612963565b611576565b34801561078c575f80fd5b5061028261079b366004612295565b611633565b3480156107ab575f80fd5b506102d76107ba366004612a1c565b61164f565b3480156107ca575f80fd5b506102d76107d936600461227e565b61172e565b3480156107e9575f80fd5b506107f2611739565b6040516102af9190612a48565b34801561080a575f80fd5b506102d7610819366004612aaa565b6117ce565b5f610828816118b2565b600a546040516001600160a01b038085169216907f24b8a2b6435960c7b1b405f08e684a0ed2e4d467b56f325250b56e2a10dbabae905f90a350600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160e01b03198216637965db0b60e01b14806108b457506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6108c4816118b2565b6001600160a01b0382166108eb5760405163de0ce17d60e01b815260040160405180910390fd5b6007546040516001600160a01b038085169216907faefd875bf3940c57f185da0affbb82ce03656890d6e1d29310e8b4bf9d20b7c1905f90a350600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f9081525f805160206131b3833981519152602052604090206001015490565b5f6109715f6118bc565b905090565b61097f82610947565b610988816118b2565b61099283836118c5565b50505050565b6001600160a01b03811633146109c15760405163334bd91960e11b815260040160405180910390fd5b6109cb8282611966565b505050565b600a5460405163495e6d8960e01b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f92169063495e6d899060a4015b602060405180830381865afa158015610a37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5b9190612b15565b90505b95945050505050565b610a6f6119df565b610a7882611a85565b610a828282611a8f565b5050565b5f610a8f611b4b565b505f8051602061319383398151915290565b6060610aac84610bf3565b610ad95760405163e2a7bea360e01b81526001600160a01b03851660048201526024015b60405180910390fd5b610b188484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b9492505050565b949350505050565b600a546040516317edfc4360e21b81526001600160a01b0387811660048301526024820187905285811660448301528481166064830152608482018490525f921690635fb7f10c9060a401610a1c565b600a5460405163678b9bad60e01b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f92169063678b9bad906084015b602060405180830381865afa158015610bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5e9190612b2c565b5f6108b48183611ba1565b6109cb83838333611056565b610c163382600b610fe6565b610c55573381600b5b60405163062709f360e41b81526001600160a01b03938416600482015292909116602483015260ff166044820152606401610ad0565b600a546040516301bc3d7160e71b81526001600160a01b039091169063de1eb88090610c879084908690600401612b5f565b5f604051808303815f87803b158015610c9e575f80fd5b505af1158015610cb0573d5f803e3d5ffd5b505050505050565b6060610cc35f6118bc565b6001600160401b03811115610cda57610cda61231a565b604051908082528060200260200182016040528015610d0d57816020015b6060815260200190600190039081610cf85790505b5090505f5b8151811015610fe2575f610d268183611bc2565b90505f610da06064836001600160a01b0316637c90a6ca6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610d6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8e9190612bb4565b60200151670de0b6b3a7640000611bcd565b9050816001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa158015610ddf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e039190612c0d565b604001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610e41573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e689190810190612cc6565b826001600160a01b03166373d4a13a6040518163ffffffff1660e01b815260040161010060405180830381865afa158015610ea5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec99190612c0d565b606001516001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f07573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f2e9190810190612cc6565b610f3783611bd9565b846001600160a01b03166354fd4d506040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f72573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f999190810190612cc6565b604051602001610fac9493929190612d2e565b604051602081830303815290604052848481518110610fcd57610fcd612dba565b60209081029190910101525050600101610d12565b5090565b5f826001600160a01b0316846001600160a01b0316036110085750600161104f565b6001600160a01b038084165f8181526009602090815260408083205480845260088352818420958a168452948252808320938352929052205461104b9084611c68565b9150505b9392505050565b6110623382600b610fe6565b61106f573381600b610c1f565b600a546040516318d5932d60e01b81526001600160a01b03909116906318d5932d906110a5908490889088908890600401612dce565b5f604051808303815f87803b1580156110bc575f80fd5b505af11580156110ce573d5f803e3d5ffd5b5050505050505050565b610a82823383611c8a565b5f9182525f805160206131b3833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6111238133610c0a565b50565b600a546040516309feffdb60e41b81526001600160a01b038681166004830152602482018690528481166044830152606482018490525f921690639feffdb090608401610bb4565b5f826001600160a01b0316846001600160a01b0316036111905750600161104f565b506001600160a01b038281165f8181526009602090815260408083205483526008825280832094881683529381528382209282529190915220548116811461104f565b60405133907fecbee29490a7e5456f4e3aab0700477764e3f16dda5a21ea92f43f1cfcb15799905f90a2335f90815260096020526040812080549161121783612e6a565b9190505550565b604080515f815260208101909152606090826001600160401b038111156112475761124761231a565b60405190808252806020026020018201604052801561127a57816020015b60608152602001906001900390816112655790505b5091505f5b838110156112fb576112d63086868481811061129d5761129d612dba565b90506020028101906112af9190612e95565b856040516020016112c293929190612ede565b604051602081830303815290604052611d72565b8382815181106112e8576112e8612dba565b602090810291909101015260010161127f565b505092915050565b61130f3382600b610fe6565b61131c573381600b610c1f565b600a546040516393c0d3f360e01b81526001600160a01b03909116906393c0d3f390610c879084908690600401612b5f565b5f611358816118b2565b6001600160a01b03821661137f5760405163de0ce17d60e01b815260040160405180910390fd5b6006546040516001600160a01b038085169216907ffb3d0b43c5121de915eeb8fa2fb4bb792b6b05d5d6f3df7630aac9d9e8697312905f90a350600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f6113e4611ddb565b805490915060ff600160401b82041615906001600160401b03165f8115801561140a5750825b90505f826001600160401b031660011480156114255750303b155b905081158015611433575080155b156114515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561147b57845460ff60401b1916600160401b1785555b611483611e03565b61148b611e03565b611493611e03565b61149d5f876118c5565b506114c87f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a876118c5565b506114f37ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab876118c5565b5061151e7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd24038876118c5565b508315610cb057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6111238133611303565b5f80611581816118b2565b60405163145b6cb960e11b815273__$8498e19059e8c9c59d07dfb635c44386c6$__906328b6d972906115b8908690600401612f03565b602060405180830381865af41580156115d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f79190612fe0565b6040519092506001600160a01b038316907f970cbcaabfe7c54976df22e530fb6ef3a9202796c410ae94972a9b109d5b2ca8905f90a250919050565b61163c82610947565b611645816118b2565b6109928383611966565b5f8061165a816118b2565b6007546040516302a8408560e11b81526001600160a01b03918216600482015233602482018190528683166044830152918516606482015273__$c583a0fe7c050ce40cdddde89e71ac1899$__90630550810a90608401602060405180830381865af41580156116cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f09190612fe0565b6040519093506001600160a01b038416907f798adeb18dd44bd81e89d3ab4aa52d11e6d22b3ab80b11da6844ec0eda2a0810905f90a2505092915050565b5f6108b48183611bc2565b60606117445f6118bc565b6001600160401b0381111561175b5761175b61231a565b604051908082528060200260200182016040528015611784578160200160208202803683370190505b5090505f5b8151811015610fe25761179c5f82611bc2565b8282815181106117ae576117ae612dba565b6001600160a01b0390921660209283029190910190910152600101611789565b5f806117d9816118b2565b60065460405163d41bcfc560e01b8152339173__$74708c40afd3f014cbcff13274aefc3e53$__9163d41bcfc591611829916001600160a01b039091169085908c908c908c908c906004016130c8565b602060405180830381865af4158015611844573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118689190612fe0565b92506118745f84611e0b565b506040516001600160a01b038416907ffa970ff5f178441bbe297db8d35a584c9bd6628b17b82d80dc8f5b80063102ca905f90a25050949350505050565b6111238133611e1f565b5f6108b4825490565b5f5f805160206131b38339815191526118de84846110e3565b61195d575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556119133390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506108b4565b5f9150506108b4565b5f5f805160206131b383398151915261197f84846110e3565b1561195d575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506108b4565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611a6557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a595f80516020613193833981519152546001600160a01b031690565b6001600160a01b031614155b15611a835760405163703e46dd60e11b815260040160405180910390fd5b565b5f610a82816118b2565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611ae9575060408051601f3d908101601f19168201909252611ae691810190612b15565b60015b611b1157604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610ad0565b5f805160206131938339815191528114611b4157604051632a87526960e21b815260048101829052602401610ad0565b6109cb8383611e58565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a835760405163703e46dd60e11b815260040160405180910390fd5b606061104f83835f611ead565b6001600160a01b0381165f908152600183016020526040812054151561104f565b5f61104f8383611f4d565b5f610b18848484611f73565b60605f611be583611f97565b60010190505f816001600160401b03811115611c0357611c0361231a565b6040519080825280601f01601f191660200182016040528015611c2d576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611c3757509392505050565b5f81600c811115611c7b57611c7b612b4b565b6001901b831615159392505050565b6001600160a01b038316611cb15760405163de0ce17d60e01b815260040160405180910390fd5b611cba8161206e565b611cda57604051632e40743360e01b815260048101829052602401610ad0565b6001600160a01b0382165f9081526009602052604090205481846001600160a01b0316846001600160a01b03167f89733de2d64cea40de091169750607b26e8d46142312fba65fb6476c790bad4984604051611d3891815260200190565b60405180910390a45f9081526008602090815260408083206001600160a01b03968716845282528083209490951682529290925291902055565b60605f80846001600160a01b031684604051611d8e9190613177565b5f60405180830381855af49150503d805f8114611dc6576040519150601f19603f3d011682016040523d82523d5f602084013e611dcb565b606091505b5091509150610a5e858383612087565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108b4565b611a836120e3565b5f61104f836001600160a01b038416612108565b611e2982826110e3565b610a825760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610ad0565b611e6182612154565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611ea5576109cb8282611d72565b610a826121b7565b606081471015611ed95760405163cf47918160e01b815247600482015260248101839052604401610ad0565b5f80856001600160a01b03168486604051611ef49190613177565b5f6040518083038185875af1925050503d805f8114611f2e576040519150601f19603f3d011682016040523d82523d5f602084013e611f33565b606091505b5091509150611f43868383612087565b9695505050505050565b5f825f018281548110611f6257611f62612dba565b905f5260205f200154905092915050565b5f825f190484118302158202611f905763ad251c275f526004601cfd5b5091020490565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611fd55772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612001576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061201f57662386f26fc10000830492506010015b6305f5e1008310612037576305f5e100830492506008015b612710831061204b57612710830492506004015b6064831061205d576064830492506002015b600a83106108b45760010192915050565b5f8061207d6001611000612e82565b9092111592915050565b60608261209c57612097826121d6565b61104f565b81511580156120b357506001600160a01b0384163b155b156120dc57604051639996b31560e01b81526001600160a01b0385166004820152602401610ad0565b508061104f565b6120eb6121ff565b611a8357604051631afcd79f60e31b815260040160405180910390fd5b5f81815260018301602052604081205461214d57508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556108b4565b505f6108b4565b806001600160a01b03163b5f0361218957604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610ad0565b5f8051602061319383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b3415611a835760405163b398979f60e01b815260040160405180910390fd5b8051156121e65780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f612208611ddb565b54600160401b900460ff16919050565b6001600160a01b0381168114611123575f80fd5b5f6020828403121561223c575f80fd5b813561104f81612218565b5f60208284031215612257575f80fd5b81356001600160e01b03198116811461104f575f80fd5b803561227981612218565b919050565b5f6020828403121561228e575f80fd5b5035919050565b5f80604083850312156122a6575f80fd5b8235915060208301356122b881612218565b809150509250929050565b5f805f805f60a086880312156122d7575f80fd5b85356122e281612218565b94506020860135935060408601356122f981612218565b9250606086013561230981612218565b949793965091946080013592915050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156123505761235061231a565b60405290565b60405161014081016001600160401b03811182821017156123505761235061231a565b604051601f8201601f191681016001600160401b03811182821017156123a1576123a161231a565b604052919050565b5f6001600160401b038211156123c1576123c161231a565b50601f01601f191660200190565b5f80604083850312156123e0575f80fd5b82356123eb81612218565b915060208301356001600160401b03811115612405575f80fd5b8301601f81018513612415575f80fd5b8035612428612423826123a9565b612379565b81815286602083850101111561243c575f80fd5b816020840160208301375f602083830101528093505050509250929050565b5f5b8381101561247557818101518382015260200161245d565b50505f910152565b5f815180845261249481602086016020860161245b565b601f01601f19169290920160200192915050565b602081525f61104f602083018461247d565b5f805f604084860312156124cc575f80fd5b83356124d781612218565b925060208401356001600160401b03808211156124f2575f80fd5b818601915086601f830112612505575f80fd5b813581811115612513575f80fd5b876020828501011115612524575f80fd5b6020830194508093505050509250925092565b5f805f806080858703121561254a575f80fd5b843561255581612218565b935060208501359250604085013561256c81612218565b9396929550929360600135925050565b5f60a0828403121561258c575f80fd5b61259461232e565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f805f61016084860312156125db575f80fd5b833592506125ec856020860161257c565b91506125fb8560c0860161257c565b90509250925092565b5f82601f830112612613575f80fd5b813560206001600160401b0382111561262e5761262e61231a565b8160051b61263d828201612379565b9283528481018201928281019087851115612656575f80fd5b83870192505b848310156126755782358252918301919083019061265c565b979650505050505050565b5f8060408385031215612691575f80fd5b82356001600160401b038111156126a6575f80fd5b6126b285828601612604565b92505060208301356122b881612218565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561271857603f1988860301845261270685835161247d565b945092850192908501906001016126ea565b5092979650505050505050565b5f805f60608486031215612737575f80fd5b83359250602084013561274981612218565b9150604084013561275981612218565b809150509250925092565b5f805f60608486031215612776575f80fd5b833561278181612218565b9250602084013561279181612218565b91506040840135600d8110612759575f80fd5b5f805f8061018085870312156127b8575f80fd5b843593506127c9866020870161257c565b92506127d88660c0870161257c565b91506101608501356127e981612218565b939692955090935050565b5f8060408385031215612805575f80fd5b823561281081612218565b946020939093013593505050565b5f6020828403121561282e575f80fd5b81356001600160401b03811115612843575f80fd5b610b1884828501612604565b5f805f60608486031215612861575f80fd5b833561286c81612218565b9250602084013561287c81612218565b929592945050506040919091013590565b5f806020838503121561289e575f80fd5b82356001600160401b03808211156128b4575f80fd5b818501915085601f8301126128c7575f80fd5b8135818111156128d5575f80fd5b8660208260051b85010111156128e9575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561271857603f1988860301845261293e85835161247d565b94509285019290850190600101612922565b803563ffffffff81168114612279575f80fd5b5f6101408284031215612974575f80fd5b61297c612356565b6129858361226e565b815261299360208401612950565b60208201526129a460408401612950565b60408201526129b56060840161226e565b60608201526129c66080840161226e565b60808201526129d760a0840161226e565b60a08201526129e860c0840161226e565b60c082015260e083013560e0820152610100808401358183015250610120612a1181850161226e565b908201529392505050565b5f8060408385031215612a2d575f80fd5b8235612a3881612218565b915060208301356122b881612218565b602080825282518282018190525f9190848201906040850190845b81811015612a885783516001600160a01b031683529284019291840191600101612a63565b50909695505050505050565b5f60c08284031215612aa4575f80fd5b50919050565b5f805f80848603610260811215612abf575f80fd5b612ac98787612a94565b945060a060bf1982011215612adc575f80fd5b60c086019350604061015f1982011215612af4575f80fd5b5061016085019150612b0a866101a08701612a94565b905092959194509250565b5f60208284031215612b25575f80fd5b5051919050565b5f60208284031215612b3c575f80fd5b8151801515811461104f575f80fd5b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b03831681526040602080830182905283519183018290525f9184820191906060850190845b81811015612ba757845183529383019391830191600101612b8b565b5090979650505050505050565b5f60a08284031215612bc4575f80fd5b612bcc61232e565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b805161227981612218565b5f610100808385031215612c1f575f80fd5b604051908101906001600160401b0382118183101715612c4157612c4161231a565b81604052835181526020840151602082015260408401519150612c6382612218565b816040820152612c7560608501612c02565b6060820152612c8660808501612c02565b6080820152612c9760a08501612c02565b60a0820152612ca860c08501612c02565b60c0820152612cb960e08501612c02565b60e0820152949350505050565b5f60208284031215612cd6575f80fd5b81516001600160401b03811115612ceb575f80fd5b8201601f81018413612cfb575f80fd5b8051612d09612423826123a9565b818152856020838501011115612d1d575f80fd5b610a5e82602083016020860161245b565b66029b4bd32903e160cd1b81525f8551612d4f816007850160208a0161245b565b8083019050620103e160ed1b8060078301528651612d7481600a850160208b0161245b565b600a92019182018190528551612d9181600d850160208a0161245b565b600d9201918201528351612dac81601084016020880161245b565b016010019695505050505050565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b0385168152602081018490526101808101612e1e604083018580518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b825160e08301526020830151610100830152604083015161012083015260608301516101408301526080830151610160830152610a5e565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612e7b57612e7b612e56565b5060010190565b818103818111156108b4576108b4612e56565b5f808335601e19843603018112612eaa575f80fd5b8301803591506001600160401b03821115612ec3575f80fd5b602001915036819003821315612ed7575f80fd5b9250929050565b828482375f8382015f81528351612ef981836020880161245b565b0195945050505050565b81516001600160a01b0316815261014081016020830151612f2c602084018263ffffffff169052565b506040830151612f44604084018263ffffffff169052565b506060830151612f5f60608401826001600160a01b03169052565b506080830151612f7a60808401826001600160a01b03169052565b5060a0830151612f9560a08401826001600160a01b03169052565b5060c0830151612fb060c08401826001600160a01b03169052565b5060e083810151908301526101008084015190830152610120808401516001600160a01b038116828501526112fb565b5f60208284031215612ff0575f80fd5b815161104f81612218565b803561300681612218565b6001600160a01b0316825260208101356001600160401b03811680821461302b575f80fd5b80602085015250505050565b803561304281612218565b6001600160a01b03908116835260208201359061305e82612218565b908116602084015260408201359061307582612218565b908116604084015260608201359061308c82612218565b90811660608401526080820135906130a382612218565b908116608084015260a0820135906130ba82612218565b80821660a085015250505050565b5f6102a08201905060018060a01b0380891683528088166020840152863560408401526020870135606084015260408701356080840152606087013560a0840152608087013560c084015260a087013561312181612218565b1660e0830152843561010083015260208501356101208301526040850135610140830152606085013561016083015260808501356101808301526131696101a0830185612ffb565b6126756101e0830184613037565b5f825161318881846020870161245b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212204a06383b44d8de699bf87696a34408a27b032833876bb17147f11c2dc8539a1b64736f6c63430008170033"; type SizeFactoryConstructorParams = | [linkLibraryAddresses: SizeFactoryLibraryAddresses, signer?: Signer] diff --git a/src/v1.8/types/ethers-contracts/factories/Size__factory.ts b/src/v1.8/types/ethers-contracts/factories/Size__factory.ts index 187fcb3..604a973 100644 --- a/src/v1.8/types/ethers-contracts/factories/Size__factory.ts +++ b/src/v1.8/types/ethers-contracts/factories/Size__factory.ts @@ -847,24 +847,6 @@ const _abi = [ ], stateMutability: "view", }, - { - type: "function", - name: "getPositionsCount", - inputs: [], - outputs: [ - { - name: "", - type: "uint256", - internalType: "uint256", - }, - { - name: "", - type: "uint256", - internalType: "uint256", - }, - ], - stateMutability: "view", - }, { type: "function", name: "getRoleAdmin", @@ -1450,12 +1432,31 @@ const _abi = [ }, { type: "function", - name: "isDebtPositionLiquidatable", + name: "isUserDefinedBorrowOfferNull", inputs: [ { - name: "debtPositionId", - type: "uint256", - internalType: "uint256", + name: "user", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "isUserDefinedLoanOfferNull", + inputs: [ + { + name: "user", + type: "address", + internalType: "address", }, ], outputs: [ @@ -2321,19 +2322,6 @@ const _abi = [ outputs: [], stateMutability: "payable", }, - { - type: "function", - name: "setVariablePoolBorrowRate", - inputs: [ - { - name: "borrowRate", - type: "uint128", - internalType: "uint128", - }, - ], - outputs: [], - stateMutability: "nonpayable", - }, { type: "function", name: "setVault", @@ -2677,31 +2665,6 @@ const _abi = [ ], anonymous: false, }, - { - type: "event", - name: "VariablePoolBorrowRateUpdated", - inputs: [ - { - name: "sender", - type: "address", - indexed: true, - internalType: "address", - }, - { - name: "oldBorrowRate", - type: "uint128", - indexed: false, - internalType: "uint128", - }, - { - name: "newBorrowRate", - type: "uint128", - indexed: false, - internalType: "uint128", - }, - ], - anonymous: false, - }, { type: "error", name: "AccessControlBadConfirmation", @@ -2852,7 +2815,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051615f60620001005f395f81816139f201528181613a1b0152613b830152615f605ff3fe6080604052600436106103be575f3560e01c80636c2eb350116101f4578063ac9650d811610113578063d927acef116100a8578063f1bf35c311610078578063f1bf35c314610c28578063f45bf01c14610c47578063f54ae18b14610c5a578063fa823af514610c6d578063fd17174a14610c80575f80fd5b8063d927acef14610bd0578063e05001f514610be3578063e236052b14610bf6578063e5af06ce14610c09575f80fd5b8063ca40742c116100e3578063ca40742c14610b6c578063cb2e9bdc14610b8b578063ccd8d4d114610b9e578063d547741f14610bb1575f80fd5b8063ac9650d814610aa2578063ad3cb1cc14610ac2578063b5ec748714610af2578063c421a75914610b4d575f80fd5b80637f417c06116101895780638ea68d7e116101595780638ea68d7e14610a3157806391d1485414610a445780639ab8011514610a63578063a217fddf14610a8f575f80fd5b80637f417c06146109e4578063834dafb5146109f75780638456cb5914610a0a5780638e57277614610a1e575f80fd5b806376c1b82f116101c457806376c1b82f1461090f5780637a32376a1461093b5780637c90a6ca1461094e5780637dc0d1d0146109a3575f80fd5b80636c2eb350146107a557806373b683be146107b957806373d4a13a146107d857806375829a36146108fc575f80fd5b80632f2ff15d116102e05780634fd9a8a51161027557806353e043d41161024557806353e043d41461070e57806354fd4d50146107215780635c975abb146107565780635cbc51eb14610779575f80fd5b80634fd9a8a5146106c1578063510aeb39146106d457806352d1902d146106e7578063536b9c79146106fb575f80fd5b80633ae6d7c3116102b05780633ae6d7c3146106685780633f4ba83a1461067b5780634cbd882c1461068f5780634f1ef286146106ae575f80fd5b80632f2ff15d1461060457806336568abe146106235780633746f858146106425780633962a68614610655575f80fd5b80631970e5ea11610356578063248a9ca311610326578063248a9ca3146105a05780632b4c9a20146105bf5780632b59bd99146105d25780632e106f21146105f1575f80fd5b80631970e5ea146104d55780631ca3b0cb146104f45780631e5eb1d01461051d5780631ff75b0b14610581575f80fd5b806304c842221161039157806304c84222146104565780630cf8542f146104825780630d37ab0014610495578063134f3f96146104c2575f80fd5b806301ffc9a7146103c257806302088c51146103f657806302f2855a146104225780630317b9df14610437575b5f80fd5b3480156103cd575f80fd5b506103e16103dc3660046142c8565b610c93565b60405190151581526020015b60405180910390f35b348015610401575f80fd5b506104156104103660046144c8565b610cc9565b6040516103ed9190614511565b610435610430366004614586565b610d4a565b005b348015610442575f80fd5b506104356104513660046145b0565b610e3d565b348015610461575f80fd5b506104756104703660046145e1565b610f41565b6040516103ed91906145fc565b610435610490366004614586565b610fc8565b3480156104a0575f80fd5b506104b46104af366004614635565b610ff5565b6040519081526020016103ed565b6104356104d0366004614761565b611008565b3480156104e0575f80fd5b506104b46104ef3660046147df565b6110b6565b3480156104ff575f80fd5b506105086110c1565b604080519283526020830191909152016103ed565b348015610528575f80fd5b506105316110f4565b6040516103ed9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201516001600160a01b03169181019190915260c00190565b34801561058c575f80fd5b506104b461059b3660046147f6565b6111a6565b3480156105ab575f80fd5b506104b46105ba3660046147df565b611249565b6104356105cd366004614586565b611269565b3480156105dd575f80fd5b506104b46105ec366004614635565b611296565b6104356105ff36600461483b565b6112a2565b34801561060f575f80fd5b5061043561061e366004614871565b6112c8565b34801561062e575f80fd5b5061043561063d366004614871565b6112ea565b6104356106503660046145b0565b611322565b6104356106633660046148f4565b611348565b610435610676366004614947565b611493565b348015610686575f80fd5b506104356116cf565b34801561069a575f80fd5b506104356106a9366004614985565b611728565b6104356106bc3660046149ab565b611809565b6104356106cf366004614bb6565b611828565b6104356106e2366004614be7565b6118d6565b3480156106f2575f80fd5b506104b4611903565b610435610709366004614c40565b61191e565b61043561071c366004614bb6565b611a17565b34801561072c575f80fd5b506040805180820190915260048152630ec625c760e31b60208201525b6040516103ed9190614cde565b348015610761575f80fd5b505f80516020615eeb8339815191525460ff166103e1565b348015610784575f80fd5b506107986107933660046145e1565b611ac5565b6040516103ed9190614dbe565b3480156107b0575f80fd5b50610435611f08565b3480156107c4575f80fd5b506104b46107d33660046147f6565b611fd8565b3480156107e3575f80fd5b5061088b60408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152506040805161010081018252601154815260125460208201526014546001600160a01b03908116928201929092526015548216606082015260165482166080820152601a54821660a0820152601854821660c082015260195490911660e082015290565b604080518251815260208084015190820152828201516001600160a01b039081169282019290925260608084015183169082015260808084015183169082015260a08084015183169082015260c08084015183169082015260e09283015190911691810191909152610100016103ed565b61043561090a366004614e95565b612037565b34801561091a575f80fd5b5061092e6109293660046147df565b612130565b6040516103ed9190614ec7565b610435610949366004614f55565b6121f6565b348015610959575f80fd5b506109626122a4565b6040516103ed91905f60a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156109ae575f80fd5b506109b7612342565b6040805182516001600160a01b031681526020928301516001600160401b031692810192909252016103ed565b6104356109f2366004614be7565b6123c5565b610435610a053660046148f4565b612471565b348015610a15575f80fd5b506104356125a4565b610435610a2c366004614586565b6125fd565b610435610a3f3660046144c8565b61262a565b348015610a4f575f80fd5b506103e1610a5e366004614871565b61265f565b348015610a6e575f80fd5b50610a82610a7d3660046144c8565b612695565b6040516103ed9190614f89565b348015610a9a575f80fd5b506104b45f81565b610ab5610ab0366004614fd5565b612716565b6040516103ed9190615043565b348015610acd575f80fd5b50610749604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610afd575f80fd5b50610b11610b0c3660046147df565b61272b565b6040516103ed919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b348015610b58575f80fd5b50610475610b673660046145e1565b612811565b348015610b77575f80fd5b506104b4610b863660046145e1565b612898565b610435610b993660046150a5565b61291b565b610435610bac3660046145b0565b612948565b348015610bbc575f80fd5b50610435610bcb366004614871565b61296e565b610508610bde3660046150b6565b61298a565b6104b4610bf1366004614586565b612bd5565b610435610c043660046150c6565b612d43565b348015610c14575f80fd5b506103e1610c233660046147df565b612d77565b348015610c33575f80fd5b50610435610c423660046150e7565b612df2565b610435610c5536600461516b565b61306a565b610435610c683660046151f8565b61311d565b610435610c7b3660046151f8565b6131cb565b610435610c8e36600461516b565b613279565b5f6001600160e01b03198216637965db0b60e01b1480610cc357506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cd1614175565b604051631c81982560e11b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__90633903304a90610d0a905f908690600401615281565b61014060405180830381865af4158015610d26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc391906152ec565b610d526132ad565b610d5a6132e4565b604051635fed4de960e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__90635fed4de990610d93905f908590600401615381565b5f6040518083038186803b158015610da9575f80fd5b505af4158015610dbb573d5f803e3d5ffd5b505060405163d96aec4360e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__925063d96aec439150610df8905f908590600401615381565b5f6040518083038186803b158015610e0e575f80fd5b505af4158015610e20573d5f803e3d5ffd5b50505050610e3a60015f80516020615f0b83398151915255565b50565b5f610e488133613329565b610e735760405163e2517d3f60e01b8152336004820152602481018290526044015b60405180910390fd5b60405163e57980dd60e01b815273__$72c16261390208f563094e6a4fc9f74031$__9063e57980dd90610eac905f9086906004016153c3565b5f6040518083038186803b158015610ec2575f80fd5b505af4158015610ed4573d5f803e3d5ffd5b5050604051634752b3b360e01b815273__$72c16261390208f563094e6a4fc9f74031$__9250634752b3b39150610f11905f9086906004016153c3565b5f6040518083038186803b158015610f27575f80fd5b505af4158015610f39573d5f803e3d5ffd5b505050505050565b610f6e6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526001820154815260028201549281019290925260038101549282019290925260048201546060820152600590910154608082015290565b610e3a604051806040016040528083803603810190610fe79190615447565b8152336020909101526131cb565b5f6110018184846133d2565b9392505050565b6110106132ad565b6110186132e4565b6040516333d4ade560e01b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__906333d4ade590611051905f908590600401615461565b5f6040518083038186803b158015611067575f80fd5b505af4158015611079573d5f803e3d5ffd5b505060405163178bcac760e11b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__9250632f17958e9150610df8905f908590600401615461565b5f610cc38183613520565b6011545f9081906110d39082906154e5565b6110df60025f196154f8565b6012546110ec91906154e5565b915091509091565b6111306040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681525090565b6040516386617e7760e01b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__906386617e779060240160c060405180830381865af415801561117d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a19190615517565b905090565b60405163897bce1f60e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__9063897bce1f9060a4015b602060405180830381865af415801561121c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112409190615575565b95945050505050565b5f9081525f80516020615ecb833981519152602052604090206001015490565b610e3a6040518060400160405280838036038101906112889190615447565b81523360209091015261311d565b5f611001818484613720565b610e3a6040518060400160405280836112ba9061558c565b815233602090910152611008565b6112d182611249565b6112da81613864565b6112e4838361386e565b50505050565b6001600160a01b03811633146113135760405163334bd91960e11b815260040160405180910390fd5b61131d828261390f565b505050565b610e3a60405180604001604052808361133a90615597565b815233602090910152611a17565b6113506132ad565b6113586132e4565b60405163160b9e6b60e31b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063b05cf35890611391905f9085906004016155d3565b5f6040518083038186803b1580156113a7575f80fd5b505af41580156113b9573d5f803e3d5ffd5b5050604051639f46aa4160e01b815273__$c58e2605104bb31274ad8c04841b6a7550$__9250639f46aa4191506113f6905f9085906004016155d3565b5f6040518083038186803b15801561140c575f80fd5b505af415801561141e573d5f803e3d5ffd5b505050505f19815f0151602001510361147d5760208101516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610df8565b610e3a60015f80516020615f0b83398151915255565b61149b6132ad565b6114a36132e4565b602081015160405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af4158015611507573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061152b9190615575565b60405163f9c417bd60e01b815290915073__$7fa168b5d238863382c2bf886894022425$__9063f9c417bd90611567905f9087906004016155e8565b5f6040518083038186803b15801561157d575f80fd5b505af415801561158f573d5f803e3d5ffd5b5050604051634971bf9960e01b815273__$7fa168b5d238863382c2bf886894022425$__9250634971bf9991506115cc905f9087906004016155e8565b5f6040518083038186803b1580156115e2575f80fd5b505af41580156115f4573d5f803e3d5ffd5b505060405163046dbd1360e11b81525f600482018190526001600160a01b0386166024830152925073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__91506308db7a2690604401602060405180830381865af4158015611657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167b9190615575565b90508181116116b65760405163625a84dd60e01b81526001600160a01b03841660048201526024810183905260448101829052606401610e6a565b505050610e3a60015f80516020615f0b83398151915255565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6116fa8133613329565b6117205760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b610e3a613988565b6117306132ad565b7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd2403861175b8133613329565b6117815760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b600d80546001600160801b038481166001600160c01b031983168117600160801b426001600160401b031602179093556040805191909216808252602082019390935233917f26b8010a81fad3e15c7545637c99390bdeb250bf0a67e4cf43c3d220ec2acc31910160405180910390a25050610e3a60015f80516020615f0b83398151915255565b6118116139e7565b61181a82613a8b565b6118248282613abc565b5050565b6118306132ad565b6118386132e4565b604051637125eda960e11b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__9063e24bdb5290611871905f9085906004016156e3565b5f6040518083038186803b158015611887575f80fd5b505af4158015611899573d5f803e3d5ffd5b505060405163184d91f360e31b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__925063c26c8f989150610df8905f9085906004016156e3565b610e3a6040518060400160405280838036038101906118f591906156fb565b815233602090910152612037565b5f61190c613b78565b505f80516020615eab83398151915290565b6119266132ad565b61192e6132e4565b604080516325f2df6f60e01b81525f6004820152825151602482015260208301516001600160a01b03908116604483015291830151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__906325f2df6f906084015f6040518083038186803b1580156119a0575f80fd5b505af41580156119b2573d5f803e3d5ffd5b5050604080516330e78a9160e11b81525f6004820152845151602482015260208501516001600160a01b03908116604483015291850151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__92506361cf15229150608401610df8565b611a1f6132ad565b611a276132e4565b604051632d0c1e8b60e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__90632d0c1e8b90611a60905f9085906004016156e3565b5f6040518083038186803b158015611a76575f80fd5b505af4158015611a88573d5f803e3d5ffd5b505060405163c0c66ed960e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__925063c0c66ed99150610df8905f9085906004016156e3565b611acd6141bb565b5f80516020615f0b83398151915254600203611afc57604051633ee5aeb560e01b815260040160405180910390fd5b604080516001600160a01b0384165f908152600e60209081529083902061016083018452805461012084019081528451600183018054608095810283018601909752606082018781529596879660a088019687959487946101408b01949193909284928491840182828015611b8e57602002820191905f5260205f20905b815481526020019060010190808311611b7a575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611be457602002820191905f5260205f20905b815481526020019060010190808311611bd0575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611c3a57602002820191905f5260205f20905b815481526020019060010190808311611c26575b505050505081525050815250508152602001600482016040518060400160405290815f8201548152602001600182016040518060600160405290815f8201805480602002602001604051908101604052809291908181526020018280548015611cc057602002820191905f5260205f20905b815481526020019060010190808311611cac575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d1657602002820191905f5260205f20905b815481526020019060010190808311611d02575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611d6c57602002820191905f5260205f20905b815481526020019060010190808311611d58575b505050919092525050509052508152600882015460208083019190915260099092015460ff1615156040918201529183526001600160a01b0386811691840182905260165483516370a0823160e01b815260048101939093529390920192909116906370a0823190602401602060405180830381865afa158015611df2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e169190615575565b8152601a546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611e66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8a9190615575565b81526018546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efe9190615575565b905290505b919050565b5f611f1281613864565b612a305f611f1e613bc1565b8054909150600160401b900460ff1680611f45575080546001600160401b03808416911610155b15611f635760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155611f8c613be9565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b604051637574b6e360e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__90637574b6e39060a401611201565b61203f6132ad565b6120476132e4565b604051623fe27360e01b81525f6004820152815180516001600160a01b039081166024840152602091820151151560448401529083015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__90623fe273906084015f6040518083038186803b1580156120b8575f80fd5b505af41580156120ca573d5f803e3d5ffd5b505060405163724e2b6f60e01b81525f6004820152835180516001600160a01b039081166024840152602091820151151560448401529085015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__925063724e2b6f9150608401610df8565b6121386141f5565b604051633978289f60e01b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90633978289f90604401602060405180830381865af415801561218c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b09190615575565b6040805160808101825282546001600160a01b0381168252600160a01b900460ff1615156020820152600183015491810191909152600290910154606082015292915050565b6121fe6132ad565b6122066132e4565b60405163da25f11760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__9063da25f1179061223f905f908590600401615715565b5f6040518083038186803b158015612255575f80fd5b505af4158015612267573d5f803e3d5ffd5b50506040516388fb1b6760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__92506388fb1b679150610df8905f908590600401615715565b6122d16040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051636e9bc7eb60e11b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063dd378fd69060240160a060405180830381865af415801561231e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a191906157ab565b604080518082019091525f8082526020820152604051631ae5e80160e31b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063d72f4008906024016040805180830381865af41580156123a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a1919061580d565b6123cd6132ad565b6123d56132e4565b6040516210aa0b60e31b815273__$45d7492db284be01938913cb41b9cac2a6$__90628550589061240c905f908590600401615840565b5f6040518083038186803b158015612422575f80fd5b505af4158015612434573d5f803e3d5ffd5b50506040516364140a8360e01b815273__$45d7492db284be01938913cb41b9cac2a6$__92506364140a839150610df8905f908590600401615840565b6124796132ad565b6124816132e4565b604051631e55c20b60e31b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9063f2ae1058906124ba905f9085906004016155d3565b5f6040518083038186803b1580156124d0575f80fd5b505af41580156124e2573d5f803e3d5ffd5b5050604051630f6470bd60e01b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9250630f6470bd915061251f905f9085906004016155d3565b5f6040518083038186803b158015612535575f80fd5b505af4158015612547573d5f803e3d5ffd5b505050505f19815f0151602001510361147d578051516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610df8565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6125cf8133613329565b6125f55760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b610e3a613bf9565b610e3a60405180604001604052808380360381019061261c9190615878565b815233602090910152611493565b610e3a6040518060600160405280838152602001336001600160a01b03168152602001336001600160a01b0316815250611348565b5f9182525f80516020615ecb833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61269d614224565b60405163301d1d1560e21b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063c0747454906126d6905f908690600401615281565b61012060405180830381865af41580156126f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615892565b60606127206132e4565b6110015f8484613c41565b61275b60405180608001604052805f6001600160a01b031681526020015f81526020015f81526020015f81525090565b604051634c9829bf60e11b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90639930537e90604401602060405180830381865af41580156127af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127d39190615575565b6040805160808101825282546001600160a01b0316815260018301546020820152600283015491810191909152600390910154606082015292915050565b61283e6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526006820154815260078201549281019290925260088101549282019290925260098201546060820152600a90910154608082015290565b60405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af41580156128f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615575565b610e3a60405180604001604052808380360381019061293a91906158f4565b8152336020909101526121f6565b610e3a60405180604001604052808361296090615597565b815233602090910152611828565b61297782611249565b61298081613864565b6112e4838361390f565b5f806129946132ad565b61299c6132e4565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab6129c78133613329565b6129ed5760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b604051639f53ee0f60e01b815273__$d00168f5747027b5a56099c751031d7e40$__90639f53ee0f90612a26905f908890600401615976565b5f6040518083038186803b158015612a3c575f80fd5b505af4158015612a4e573d5f803e3d5ffd5b505060405163647a4b7560e11b815273__$d00168f5747027b5a56099c751031d7e40$__925063c8f496ea9150612a8b905f908890600401615976565b6040805180830381865af4158015612aa5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac9919061598b565b909350915073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__632d77afb65f612af960408801602089016145e1565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015612b3c575f80fd5b505af4158015612b4e573d5f803e3d5ffd5b5050604051636e6595c160e01b815273__$d00168f5747027b5a56099c751031d7e40$__9250636e6595c19150612b8d905f90889088906004016159ad565b5f6040518083038186803b158015612ba3575f80fd5b505af4158015612bb5573d5f803e3d5ffd5b5050505050612bd060015f80516020615f0b83398151915255565b915091565b5f612bde6132ad565b612be66132e4565b6040516320b5435f60e11b815273__$04d32033081e1e9356971d8f4b5098bcad$__9063416a86be90612c1f905f9086906004016159d1565b5f6040518083038186803b158015612c35575f80fd5b505af4158015612c47573d5f803e3d5ffd5b5050604051630d0699cb60e21b815273__$04d32033081e1e9356971d8f4b5098bcad$__925063341a672c9150612c84905f9086906004016159d1565b602060405180830381865af4158015612c9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc39190615575565b60405163489d188160e01b815290915073__$04d32033081e1e9356971d8f4b5098bcad$__9063489d188190612d01905f90869086906004016159f9565b5f6040518083038186803b158015612d17575f80fd5b505af4158015612d29573d5f803e3d5ffd5b50505050611f0360015f80516020615f0b83398151915255565b610e3a604051806060016040528083803603810190612d6291906144c8565b81523360208201819052604090910152612471565b604051631928c8e960e11b81525f60048201819052602482018390529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__9063325191d290604401602060405180830381865af4158015612dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc39190615a2f565b5f612dfb613bc1565b805490915060ff600160401b82041615906001600160401b03165f81158015612e215750825b90505f826001600160401b03166001148015612e3c5750303b155b905081158015612e4a575080155b15612e685760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315612e9257845460ff60401b1916600160401b1785555b6040516369777eb960e01b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__906369777eb990612ed3905f908e908e908e908e908e90600401615b63565b5f6040518083038186803b158015612ee9575f80fd5b505af4158015612efb573d5f803e3d5ffd5b50505050612f07613d29565b612f0f613d29565b612f17613be9565b612f1f613d29565b604051632ffdac7160e21b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__9063bff6b1c490612f5e905f908d908d908d908d90600401615bd7565b5f6040518083038186803b158015612f74575f80fd5b505af4158015612f86573d5f803e3d5ffd5b50505050612f965f801b8b61386e565b50612fc17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8b61386e565b50612fec7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab8b61386e565b506130177f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd240388b61386e565b50831561305e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6130726132ad565b61307a6132e4565b604051635792057f60e11b81525f60048201528135602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__9063af240afe906044015f6040518083038186803b1580156130c9575f80fd5b505af41580156130db573d5f803e3d5ffd5b50506040516320e9b9f960e11b81525f60048201528335602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__92506341d373f29150604401610df8565b6131256132ad565b61312d6132e4565b604051631005beb160e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__9063802df58890613166905f908590600401615c3b565b5f6040518083038186803b15801561317c575f80fd5b505af415801561318e573d5f803e3d5ffd5b5050604051631cc17ae560e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__925063e60bd7289150610df8905f908590600401615c3b565b6131d36132ad565b6131db6132e4565b60405163024889b160e51b815273__$d49e499a4608ab3aca09b91fe5950492b6$__90634911362090613214905f908590600401615c3b565b5f6040518083038186803b15801561322a575f80fd5b505af415801561323c573d5f803e3d5ffd5b505060405163a083c0ab60e01b815273__$d49e499a4608ab3aca09b91fe5950492b6$__925063a083c0ab9150610df8905f908590600401615c3b565b610e3a6040518060600160405280838036038101906132989190615c80565b8152336020820181905260409091015261191e565b5f80516020615f0b8339815191528054600119016132de57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f80516020615eeb8339815191525460ff16156133145760405163d93c066560e01b815260040160405180910390fd5b565b60015f80516020615f0b83398151915255565b5f613334838361265f565b1561334157506001610cc3565b601c546001600160a01b031661335857505f610cc3565b601c54604051632474521560e21b8152600481018590526001600160a01b038481166024830152909116906391d1485490604401602060405180830381865afa1580156133a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133cb9190615a2f565b9050610cc3565b6001600160a01b0382165f908152600e8401602090815260408083208151808301835281548152825160018301805460808188028401810190965260608301818152613518978c978c979591870194919391928492909184919084018282801561345957602002820191905f5260205f20905b815481526020019060010190808311613445575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156134af57602002820191905f5260205f20905b81548152602001906001019080831161349b575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561350557602002820191905f5260205f20905b8154815260200190600101908083116134f1575b5050505050815250508152505085613d31565b949350505050565b5f61100183600c015f015f9054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613578573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061359c9190615575565b6135a790600a615d7a565b6135b19084615d85565b60148501546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa1580156135fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061361f9190615d9c565b61362a90600a615dbc565b60158601546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa158015613674573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136989190615d9c565b6136a390600a615dbc565b600c87015460408051634c6afee560e11b815290516001600160a01b03909216916398d5fdca916004808201926020929091908290030181865afa1580156136ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137119190615575565b61371b9190615d85565b613e8b565b6001600160a01b0382165f908152600e84016020908152604080832081518083018352600482018054825283516005909301805460808188028601810190965260608501818152613518978c978c9791870194919391928492909184919084018282801561345957602002820191905f5260205f20908154815260200190600101908083116134455750505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156134af57602002820191905f5260205f209081548152602001906001019080831161349b57505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561350557602002820191905f5260205f20908154815260200190600101908083116134f1575050505050815250508152505085613d31565b610e3a8133613e97565b5f5f80516020615ecb833981519152613887848461265f565b613906575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556138bc3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610cc3565b5f915050610cc3565b5f5f80516020615ecb833981519152613928848461265f565b15613906575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610cc3565b613990613ed0565b5f80516020615eeb833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613a6d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613a615f80516020615eab833981519152546001600160a01b031690565b6001600160a01b031614155b156133145760405163703e46dd60e11b815260040160405180910390fd5b5f613a968133613329565b6118245760405163e2517d3f60e01b815233600482015260248101829052604401610e6a565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613b16575060408051601f3d908101601f19168201909252613b1391810190615575565b60015b613b3e57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610e6a565b5f80516020615eab8339815191528114613b6e57604051632a87526960e21b815260048101829052602401610e6a565b61131d8383613eff565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146133145760405163703e46dd60e11b815260040160405180910390fd5b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610cc3565b613bf1613f54565b613314613f79565b613c016132e4565b5f80516020615eeb833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258336139c9565b6060816001600160401b03811115613c5b57613c5b6142ef565b604051908082528060200260200182016040528015613c8e57816020015b6060815260200190600190039081613c795790505b5090505f5b82811015613d2157613cfc30858584818110613cb157613cb1615dca565b9050602002810190613cc39190615dde565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613f8192505050565b828281518110613d0e57613d0e615dca565b6020908102919091010152600101613c93565b509392505050565b613314613f54565b5f815f03613d52576040516301c85f6760e71b815260040160405180910390fd5b613d5b83613fea565b15613d835760405162b04ee160e61b81526001600160a01b0385166004820152602401610e6a565b8251613d8f8342615e27565b1115613dc357613d9f8242615e27565b8351604051636f2f16a760e01b815260048101929092526024820152604401610e6a565b60408051606081018252600d8701546001600160801b03811682526001600160401b03600160801b82048116602080850191909152600160c01b909204168284015285015191516315c6891560e11b8152909173__$99c8b6d537f6911e4d5e2b5618b4ddcec4$__91632b8d122a91613e429185908890600401615e3a565b602060405180830381865af4158015613e5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e819190615575565b9695505050505050565b5f613518848484614003565b613ea1828261265f565b6118245760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610e6a565b5f80516020615eeb8339815191525460ff1661331457604051638dfc202b60e01b815260040160405180910390fd5b613f088261402f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115613f4c5761131d8282613f81565b611824614092565b613f5c6140b1565b61331457604051631afcd79f60e31b815260040160405180910390fd5b613316613f54565b60605f80846001600160a01b031684604051613f9d9190615e8f565b5f60405180830381855af49150503d805f8114613fd5576040519150601f19603f3d011682016040523d82523d5f602084013e613fda565b606091505b50915091506112408583836140ca565b80515f90158015610cc35750610cc38260200151614126565b5f825f1904841183021582026140205763ad251c275f526004601cfd5b50910281810615159190040190565b806001600160a01b03163b5f0361406457604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610e6a565b5f80516020615eab83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156133145760405163b398979f60e01b815260040160405180910390fd5b5f6140ba613bc1565b54600160401b900460ff16919050565b6060826140df576140da8261414c565b611001565b81511580156140f657506001600160a01b0384163b155b1561411f57604051639996b31560e01b81526001600160a01b0385166004820152602401610e6a565b5080611001565b8051515f9015801561413b5750602082015151155b8015610cc357505060400151511590565b80511561415c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6040518060e001604052806141886141f5565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060a001604052806141ce61425b565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b60405180608001604052805f6001600160a01b031681526020015f151581526020015f81526020015f81525090565b6040518060c001604052806142376141f5565b81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806080016040528061426e61428e565b815260200161427b61428e565b81525f6020820181905260409091015290565b60405180604001604052805f81526020016142c360405180606001604052806060815260200160608152602001606081525090565b905290565b5f602082840312156142d8575f80fd5b81356001600160e01b031981168114611001575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405161012081016001600160401b0381118282101715614326576143266142ef565b60405290565b604051608081016001600160401b0381118282101715614326576143266142ef565b604080519081016001600160401b0381118282101715614326576143266142ef565b604051606081016001600160401b0381118282101715614326576143266142ef565b60405160a081016001600160401b0381118282101715614326576143266142ef565b60405160c081016001600160401b0381118282101715614326576143266142ef565b604051601f8201601f191681016001600160401b03811182821017156143fe576143fe6142ef565b604052919050565b6001600160a01b0381168114610e3a575f80fd5b8035611f0381614406565b8015158114610e3a575f80fd5b8035611f0381614425565b5f610120828403121561444e575f80fd5b614456614303565b90506144618261441a565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a08201526144a160c08301614432565b60c082015260e082013560e08201526101006144be81840161441a565b9082015292915050565b5f61012082840312156144d9575f80fd5b611001838361443d565b80516001600160a01b0316825260208082015115159083015260408082015190830152606090810151910152565b5f610140820190506145248284516144e3565b60018060a01b036020840151166080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015260c083015161012083015292915050565b5f60608284031215614580575f80fd5b50919050565b5f60608284031215614596575f80fd5b6110018383614570565b5f60408284031215614580575f80fd5b5f602082840312156145c0575f80fd5b81356001600160401b038111156145d5575f80fd5b613518848285016145a0565b5f602082840312156145f1575f80fd5b813561100181614406565b60a08101610cc3828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5f8060408385031215614646575f80fd5b823561465181614406565b946020939093013593505050565b5f6001600160401b03821115614677576146776142ef565b5060051b60200190565b5f82601f830112614690575f80fd5b813560206146a56146a08361465f565b6143d6565b8083825260208201915060208460051b8701019350868411156146c6575f80fd5b602086015b848110156146e257803583529183019183016146cb565b509695505050505050565b5f608082840312156146fd575f80fd5b61470561432c565b905081358152602082013561471981614425565b6020820152604082013561472c81614425565b604082015260608201356001600160401b03811115614749575f80fd5b61475584828501614681565b60608301525092915050565b5f60208284031215614771575f80fd5b81356001600160401b0380821115614787575f80fd5b908301906040828603121561479a575f80fd5b6147a261434e565b8235828111156147b0575f80fd5b6147bc878286016146ed565b825250602083013592506147cf83614406565b6020810192909252509392505050565b5f602082840312156147ef575f80fd5b5035919050565b5f805f8060808587031215614809575f80fd5b843561481481614406565b935060208501359250604085013561482b81614406565b9396929550929360600135925050565b5f6020828403121561484b575f80fd5b81356001600160401b03811115614860575f80fd5b820160808185031215611001575f80fd5b5f8060408385031215614882575f80fd5b82359150602083013561489481614406565b809150509250929050565b5f61016082840312156148b0575f80fd5b6148b8614370565b90506148c4838361443d565b81526101208201356148d581614406565b60208201526101408201356148e981614406565b604082015292915050565b5f6101608284031215614905575f80fd5b611001838361489f565b5f6060828403121561491f575f80fd5b614927614370565b905081358152602082013560208201526040820135604082015292915050565b5f60808284031215614957575f80fd5b61495f61434e565b614969848461490f565b8152606083013561497981614406565b60208201529392505050565b5f60208284031215614995575f80fd5b81356001600160801b0381168114611001575f80fd5b5f80604083850312156149bc575f80fd5b82356149c781614406565b91506020838101356001600160401b03808211156149e3575f80fd5b818601915086601f8301126149f6575f80fd5b813581811115614a0857614a086142ef565b614a1a601f8201601f191685016143d6565b91508082528784828501011115614a2f575f80fd5b80848401858401375f848284010152508093505050509250929050565b5f60408284031215614a5c575f80fd5b614a6461434e565b9050813581526020808301356001600160401b0380821115614a84575f80fd5b9084019060608287031215614a97575f80fd5b614a9f614370565b823582811115614aad575f80fd5b614ab988828601614681565b8252508383013582811115614acc575f80fd5b8301601f81018813614adc575f80fd5b8035614aea6146a08261465f565b81815260059190911b8201860190868101908a831115614b08575f80fd5b928701925b82841015614b2657833582529287019290870190614b0d565b84880152505050604083013582811115614b3e575f80fd5b614b4a88828601614681565b60408301525080848601525050505092915050565b5f60408284031215614b6f575f80fd5b614b7761434e565b905081356001600160401b03811115614b8e575f80fd5b614b9a84828501614a4c565b8252506020820135614bab81614406565b602082015292915050565b5f60208284031215614bc6575f80fd5b81356001600160401b03811115614bdb575f80fd5b61351884828501614b5f565b5f60408284031215614bf7575f80fd5b61100183836145a0565b5f60208284031215614c11575f80fd5b604051602081018181106001600160401b0382111715614c3357614c336142ef565b6040529135825250919050565b5f60608284031215614c50575f80fd5b614c58614370565b614c628484614c01565b81526020830135614c7281614406565b60208201526040830135614c8581614406565b60408201529392505050565b5f5b83811015614cab578181015183820152602001614c93565b50505f910152565b5f8151808452614cca816020860160208601614c91565b601f01601f19169290920160200192915050565b602081525f6110016020830184614cb3565b5f815180845260208085019450602084015f5b83811015614d1f57815187529582019590820190600101614d03565b509495945050505050565b805182525f602080830151604082860152805160606040870152614d5160a0870182614cf0565b83830151603f19888303810160608a0152815180845291860193505f929091908601905b80841015614d955784518252938601936001939093019290860190614d75565b5060408501519550818982030160808a0152614db18187614cf0565b9998505050505050505050565b602081525f825160a060208401528051608060c0850152614de3610140850182614d2a565b9050602082015160bf198583030160e0860152614e008282614d2a565b91505060408201516101008501526060820151151561012085015260208501519150614e3760408501836001600160a01b03169052565b6040850151606085015260608501516080850152608085015160a0850152809250505092915050565b5f60408284031215614e70575f80fd5b614e7861434e565b90508135614e8581614406565b81526020820135614bab81614425565b5f60608284031215614ea5575f80fd5b614ead61434e565b614eb78484614e60565b8152604083013561497981614406565b60808101610cc382846144e3565b5f60a08284031215614ee5575f80fd5b614eed614392565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f6101408284031215614f32575f80fd5b614f3a61434e565b9050614f468383614ed5565b8152614bab8360a08401614ed5565b5f6101608284031215614f66575f80fd5b614f6e61434e565b614f788484614f21565b815261014083013561497981614406565b5f61012082019050614f9c8284516144e3565b60208301516080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015292915050565b5f8060208385031215614fe6575f80fd5b82356001600160401b0380821115614ffc575f80fd5b818501915085601f83011261500f575f80fd5b81358181111561501d575f80fd5b8660208260051b8501011115615031575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561509857603f19888603018452615086858351614cb3565b9450928501929085019060010161506a565b5092979650505050505050565b5f6101408284031215614580575f80fd5b5f60e08284031215614580575f80fd5b5f6101208284031215614580575f80fd5b5f60c08284031215614580575f80fd5b5f805f805f8587036102808112156150fd575f80fd5b863561510881614406565b955061511788602089016150d7565b945060a060df198201121561512a575f80fd5b5060e08601925061513f8761018088016145a0565b915061514f876101c088016150d7565b90509295509295909350565b5f60208284031215614580575f80fd5b5f6020828403121561517b575f80fd5b611001838361515b565b5f60608284031215615195575f80fd5b61519d614370565b905081356151aa81614406565b81526020828101359082015260408201356148e981614406565b5f608082840312156151d4575f80fd5b6151dc61434e565b90506151e88383615185565b81526060820135614bab81614406565b5f60808284031215615208575f80fd5b61100183836151c4565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c0810151151560c083015260e081015160e0830152610100808201516112e4828501826001600160a01b03169052565b82815261014081016110016020830184615212565b5f608082840312156152a6575f80fd5b6152ae61432c565b905081516152bb81614406565b815260208201516152cb81614425565b80602083015250604082015160408201526060820151606082015292915050565b5f61014082840312156152fd575f80fd5b60405160e081018181106001600160401b038211171561531f5761531f6142ef565b60405261532c8484615296565b8152608083015161533c81614406565b8060208301525060a0830151604082015260c0830151606082015260e0830151608082015261010083015160a082015261012083015160c08201528091505092915050565b5f608082019050838252823560208301526020830135604083015260408301356153aa81614406565b6001600160a01b03166060929092019190915292915050565b828152604060208201525f8235601e198436030181126153e1575f80fd5b83016020810190356001600160401b038111156153fc575f80fd5b80360382131561540a575f80fd5b604080850152806080850152808260a08601375f60a082860101526020850135606085015260a0601f19601f830116850101925050509392505050565b5f60608284031215615457575f80fd5b6110018383615185565b828152604060208201525f8251604080840152805160808401526020810151151560a08401526040810151151560c084015260608101519050608060e08401526154af610100840182614cf0565b602094909401516001600160a01b031660609390930192909252509092915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610cc357610cc36154d1565b5f8261551257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60c08284031215615527575f80fd5b61552f6143b4565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015161556981614406565b60a08201529392505050565b5f60208284031215615585575f80fd5b5051919050565b5f610cc336836146ed565b5f610cc33683614a4c565b6155ad828251615212565b60208101516001600160a01b039081166101208401526040909101511661014090910152565b828152610180810161100160208301846155a2565b918252805180516020808501919091528082015160408086019190915290910151606084015201516001600160a01b0316608082015260a00190565b5f8151606084526156386060850182614cf0565b602084810151868303878301528051808452908201935090915f91908301905b808310156156785784518252938301936001929092019190830190615658565b506040860151935086810360408801526156928185614cf0565b979650505050505050565b5f8151604084528051604085015260208101519050604060608501526156c66080850182615624565b6020938401516001600160a01b0316949093019390935250919050565b828152604060208201525f613518604083018461569d565b5f6040828403121561570b575f80fd5b6110018383614e60565b5f61018082019050838252825161575b60208401825180518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602090810151805160c08501528082015160e0850152604081015161010085015260608101516101208501526080015161014084015292909201516001600160a01b031661016090910152919050565b5f60a082840312156157bb575f80fd5b6157c3614392565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6001600160401b0381168114610e3a575f80fd5b5f6040828403121561581d575f80fd5b61582561434e565b825161583081614406565b81526020830151614979816157f9565b5f60608201905083825282356020830152602083013561585f81614406565b6001600160a01b03166040929092019190915292915050565b5f60608284031215615888575f80fd5b611001838361490f565b5f61012082840312156158a3575f80fd5b6158ab6143b4565b6158b58484615296565b81526080830151602082015260a0830151604082015260c0830151606082015260e0830151608082015261010083015160a08201528091505092915050565b5f6101408284031215615905575f80fd5b6110018383614f21565b80358252602081013561592181614406565b6001600160a01b03908116602084015260408281013590840152606080830135908401526080808301359084015260a0828101359084015260c08201359061596882614406565b80821660c085015250505050565b8281526101008101611001602083018461590f565b5f806040838503121561599c575f80fd5b505080516020909101519092909150565b83815261012081016159c2602083018561590f565b82610100830152949350505050565b8281526080810161100160208301848035825260208082013590830152604090810135910152565b83815260a08101615a2160208301858035825260208082013590830152604090810135910152565b826080830152949350505050565b5f60208284031215615a3f575f80fd5b815161100181614425565b803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0810135615a8481614406565b6001600160a01b031660a0929092019190915250565b8035615aa581614406565b6001600160a01b031682526020810135615abe816157f9565b6001600160401b0381166020840152505050565b8035615add81614406565b6001600160a01b039081168352602082013590615af982614406565b9081166020840152604082013590615b1082614406565b9081166040840152606082013590615b2782614406565b9081166060840152608082013590615b3e82614406565b908116608084015260a082013590615b5582614406565b80821660a085015250505050565b8681526001600160a01b03861660208201526102a08101615b876040830187615a4a565b84356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152615bc96101a0830185615a9a565b6156926101e0830184615ad2565b8581526102808101615bec6020830187615a4a565b843560e08301526020850135610100830152604085013561012083015260608501356101408301526080850135610160830152615c2d610180830185615a9a565b613e816101c0830184615ad2565b82815260a081016110016020830184805180516001600160a01b0390811684526020808301518186015260409283015182169285019290925291015116606090910152565b5f60208284031215615c90575f80fd5b6110018383614c01565b600181815b80851115615cd457815f1904821115615cba57615cba6154d1565b80851615615cc757918102915b93841c9390800290615c9f565b509250929050565b5f82615cea57506001610cc3565b81615cf657505f610cc3565b8160018114615d0c5760028114615d1657615d32565b6001915050610cc3565b60ff841115615d2757615d276154d1565b50506001821b610cc3565b5060208310610133831016604e8410600b8410161715615d55575081810a610cc3565b615d5f8383615c9a565b805f1904821115615d7257615d726154d1565b029392505050565b5f6110018383615cdc565b8082028115828204841417610cc357610cc36154d1565b5f60208284031215615dac575f80fd5b815160ff81168114611001575f80fd5b5f61100160ff841683615cdc565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112615df3575f80fd5b8301803591506001600160401b03821115615e0c575f80fd5b602001915036819003821315615e20575f80fd5b9250929050565b80820180821115610cc357610cc36154d1565b60a081525f615e4c60a0830186615624565b90506001600160801b03845116602083015260208401516001600160401b0380821660408501528060408701511660608501525050826080830152949350505050565b5f8251615ea0818460208701614c91565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220db53e39fafeb6758e3bee5bcf6394daa189c06a50577b2f4276ae064a15c23fd64736f6c63430008170033"; + "0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051615fd0620001005f395f8181613ad301528181613afc0152613c640152615fd05ff3fe6080604052600436106103b3575f3560e01c80636c2eb350116101e9578063ac9650d811610108578063d927acef1161009d578063f45bf01c1161006d578063f45bf01c14610c2a578063f54ae18b14610c3d578063fa823af514610c50578063fd17174a14610c63575f80fd5b8063d927acef14610bbd578063e05001f514610be5578063e236052b14610bf8578063f1bf35c314610c0b575f80fd5b8063ca40742c116100d8578063ca40742c14610b59578063cb2e9bdc14610b78578063ccd8d4d114610b8b578063d547741f14610b9e575f80fd5b8063ac9650d814610a8f578063ad3cb1cc14610aaf578063b5ec748714610adf578063c421a75914610b3a575f80fd5b80637f417c061161017e5780638ea68d7e1161014e5780638ea68d7e14610a1e57806391d1485414610a315780639ab8011514610a50578063a217fddf14610a7c575f80fd5b80637f417c06146109d1578063834dafb5146109e45780638456cb59146109f75780638e57277614610a0b575f80fd5b806376c1b82f116101b957806376c1b82f146108fc5780637a32376a146109285780637c90a6ca1461093b5780637dc0d1d014610990575f80fd5b80636c2eb3501461079257806373b683be146107a657806373d4a13a146107c557806375829a36146108e9575f80fd5b80632f2ff15d116102d55780634fd9a8a51161026a57806353e043d41161023a57806353e043d4146106f957806354fd4d501461070c5780635c975abb146107435780635cbc51eb14610766575f80fd5b80634fd9a8a5146106ac578063510aeb39146106bf57806352d1902d146106d2578063536b9c79146106e6575f80fd5b80633ae6d7c3116102a55780633ae6d7c3146106535780633f4ba83a1461066657806344ce7c301461067a5780634f1ef28614610699575f80fd5b80632f2ff15d146105ef57806336568abe1461060e5780633746f8581461062d5780633962a68614610640575f80fd5b8063134f3f961161034b578063248a9ca31161031b578063248a9ca31461058b5780632b4c9a20146105aa5780632b59bd99146105bd5780632e106f21146105dc575f80fd5b8063134f3f96146104d65780631970e5ea146104e95780631e5eb1d0146105085780631ff75b0b1461056c575f80fd5b806304c842221161038657806304c842221461044b5780630cf8542f146104775780630cfa9a491461048a5780630d37ab00146104a9575f80fd5b806301ffc9a7146103b757806302088c51146103eb57806302f2855a146104175780630317b9df1461042c575b5f80fd5b3480156103c2575f80fd5b506103d66103d1366004614390565b610c76565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b5061040a610405366004614590565b610cac565b6040516103e291906145d9565b61042a61042536600461464e565b610d2d565b005b348015610437575f80fd5b5061042a610446366004614678565b610e20565b348015610456575f80fd5b5061046a6104653660046146a9565b610f24565b6040516103e291906146c4565b61042a61048536600461464e565b610fab565b348015610495575f80fd5b506103d66104a43660046146a9565b610fd8565b3480156104b4575f80fd5b506104c86104c33660046146fd565b611119565b6040519081526020016103e2565b61042a6104e4366004614829565b61112c565b3480156104f4575f80fd5b506104c86105033660046148a7565b6111da565b348015610513575f80fd5b5061051c6111e5565b6040516103e29190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201516001600160a01b03169181019190915260c00190565b348015610577575f80fd5b506104c86105863660046148be565b611297565b348015610596575f80fd5b506104c86105a53660046148a7565b61133a565b61042a6105b836600461464e565b61135a565b3480156105c8575f80fd5b506104c86105d73660046146fd565b611387565b61042a6105ea366004614903565b611393565b3480156105fa575f80fd5b5061042a610609366004614939565b6113b9565b348015610619575f80fd5b5061042a610628366004614939565b6113db565b61042a61063b366004614678565b611413565b61042a61064e3660046149bc565b611439565b61042a610661366004614a0f565b611584565b348015610671575f80fd5b5061042a6117c0565b348015610685575f80fd5b506103d66106943660046146a9565b611819565b61042a6106a7366004614a4d565b61194c565b61042a6106ba366004614c58565b61196b565b61042a6106cd366004614c89565b611a19565b3480156106dd575f80fd5b506104c8611a46565b61042a6106f4366004614ce2565b611a61565b61042a610707366004614c58565b611b5a565b348015610717575f80fd5b5060408051808201909152600681526576312e382e3160d01b60208201525b6040516103e29190614d80565b34801561074e575f80fd5b505f80516020615f5b8339815191525460ff166103d6565b348015610771575f80fd5b506107856107803660046146a9565b611c08565b6040516103e29190614e60565b34801561079d575f80fd5b5061042a61204b565b3480156107b1575f80fd5b506104c86107c03660046148be565b61211b565b3480156107d0575f80fd5b5061087860408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152506040805161010081018252601154815260125460208201526014546001600160a01b03908116928201929092526015548216606082015260165482166080820152601a54821660a0820152601854821660c082015260195490911660e082015290565b604080518251815260208084015190820152828201516001600160a01b039081169282019290925260608084015183169082015260808084015183169082015260a08084015183169082015260c08084015183169082015260e09283015190911691810191909152610100016103e2565b61042a6108f7366004614f37565b61217a565b348015610907575f80fd5b5061091b6109163660046148a7565b612273565b6040516103e29190614f69565b61042a610936366004614ff7565b612339565b348015610946575f80fd5b5061094f6123e7565b6040516103e291905f60a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b34801561099b575f80fd5b506109a4612485565b6040805182516001600160a01b031681526020928301516001600160401b031692810192909252016103e2565b61042a6109df366004614c89565b612508565b61042a6109f23660046149bc565b6125b4565b348015610a02575f80fd5b5061042a6126e7565b61042a610a1936600461464e565b612740565b61042a610a2c366004614590565b61276d565b348015610a3c575f80fd5b506103d6610a4b366004614939565b6127a2565b348015610a5b575f80fd5b50610a6f610a6a366004614590565b6127d8565b6040516103e2919061502b565b348015610a87575f80fd5b506104c85f81565b610aa2610a9d366004615077565b612859565b6040516103e291906150e5565b348015610aba575f80fd5b50610736604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610aea575f80fd5b50610afe610af93660046148a7565b61286e565b6040516103e2919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b348015610b45575f80fd5b5061046a610b543660046146a9565b612954565b348015610b64575f80fd5b506104c8610b733660046146a9565b6129db565b61042a610b86366004615147565b612a5e565b61042a610b99366004614678565b612a8b565b348015610ba9575f80fd5b5061042a610bb8366004614939565b612ab1565b610bd0610bcb366004615158565b612acd565b604080519283526020830191909152016103e2565b6104c8610bf336600461464e565b612d18565b61042a610c06366004615168565b612e86565b348015610c16575f80fd5b5061042a610c25366004615189565b612eba565b61042a610c3836600461520d565b613132565b61042a610c4b36600461529a565b6131e5565b61042a610c5e36600461529a565b613293565b61042a610c7136600461520d565b613341565b5f6001600160e01b03198216637965db0b60e01b1480610ca657506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb461423d565b604051631c81982560e11b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__90633903304a90610ced905f908690600401615323565b61014060405180830381865af4158015610d09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca6919061538e565b610d35613375565b610d3d6133ac565b604051635fed4de960e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__90635fed4de990610d76905f908590600401615423565b5f6040518083038186803b158015610d8c575f80fd5b505af4158015610d9e573d5f803e3d5ffd5b505060405163d96aec4360e01b815273__$1ffb1d284a100711dc8ce94ffbdfd13eea$__925063d96aec439150610ddb905f908590600401615423565b5f6040518083038186803b158015610df1575f80fd5b505af4158015610e03573d5f803e3d5ffd5b50505050610e1d60015f80516020615f7b83398151915255565b50565b5f610e2b81336133f1565b610e565760405163e2517d3f60e01b8152336004820152602481018290526044015b60405180910390fd5b60405163e57980dd60e01b815273__$72c16261390208f563094e6a4fc9f74031$__9063e57980dd90610e8f905f908690600401615465565b5f6040518083038186803b158015610ea5575f80fd5b505af4158015610eb7573d5f803e3d5ffd5b5050604051634752b3b360e01b815273__$72c16261390208f563094e6a4fc9f74031$__9250634752b3b39150610ef4905f908690600401615465565b5f6040518083038186803b158015610f0a575f80fd5b505af4158015610f1c573d5f803e3d5ffd5b505050505050565b610f516040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526001820154815260028201549281019290925260038101549282019290925260048201546060820152600590910154608082015290565b610e1d604051806040016040528083803603810190610fca91906154e9565b815233602090910152613293565b6001600160a01b0381165f908152600e6020908152604080832081518083018352600482018054825283516005909301805460808188028601810190965260608501818152610ca6979496939594870194938492849184018282801561105b57602002820191905f5260205f20905b815481526020019060010190808311611047575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b157602002820191905f5260205f20905b81548152602001906001019080831161109d575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561110757602002820191905f5260205f20905b8154815260200190600101908083116110f3575b5050505050815250508152505061349a565b5f6111258184846134b3565b9392505050565b611134613375565b61113c6133ac565b6040516333d4ade560e01b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__906333d4ade590611175905f908590600401615503565b5f6040518083038186803b15801561118b575f80fd5b505af415801561119d573d5f803e3d5ffd5b505060405163178bcac760e11b815273__$f56cb86c34e0dd0dca51f5a3538433e18c$__9250632f17958e9150610ddb905f908590600401615503565b5f610ca68183613601565b6112216040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681525090565b6040516386617e7760e01b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__906386617e779060240160c060405180830381865af415801561126e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615573565b905090565b60405163897bce1f60e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__9063897bce1f9060a4015b602060405180830381865af415801561130d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133191906155d1565b95945050505050565b5f9081525f80516020615f3b833981519152602052604090206001015490565b610e1d60405180604001604052808380360381019061137991906154e9565b8152336020909101526131e5565b5f611125818484613801565b610e1d6040518060400160405280836113ab906155e8565b81523360209091015261112c565b6113c28261133a565b6113cb81613945565b6113d5838361394f565b50505050565b6001600160a01b03811633146114045760405163334bd91960e11b815260040160405180910390fd5b61140e82826139f0565b505050565b610e1d60405180604001604052808361142b906155f3565b815233602090910152611b5a565b611441613375565b6114496133ac565b60405163160b9e6b60e31b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063b05cf35890611482905f90859060040161562f565b5f6040518083038186803b158015611498575f80fd5b505af41580156114aa573d5f803e3d5ffd5b5050604051639f46aa4160e01b815273__$c58e2605104bb31274ad8c04841b6a7550$__9250639f46aa4191506114e7905f90859060040161562f565b5f6040518083038186803b1580156114fd575f80fd5b505af415801561150f573d5f803e3d5ffd5b505050505f19815f0151602001510361156e5760208101516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610ddb565b610e1d60015f80516020615f7b83398151915255565b61158c613375565b6115946133ac565b602081015160405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af41580156115f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161c91906155d1565b60405163f9c417bd60e01b815290915073__$7fa168b5d238863382c2bf886894022425$__9063f9c417bd90611658905f908790600401615644565b5f6040518083038186803b15801561166e575f80fd5b505af4158015611680573d5f803e3d5ffd5b5050604051634971bf9960e01b815273__$7fa168b5d238863382c2bf886894022425$__9250634971bf9991506116bd905f908790600401615644565b5f6040518083038186803b1580156116d3575f80fd5b505af41580156116e5573d5f803e3d5ffd5b505060405163046dbd1360e11b81525f600482018190526001600160a01b0386166024830152925073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__91506308db7a2690604401602060405180830381865af4158015611748573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176c91906155d1565b90508181116117a75760405163625a84dd60e01b81526001600160a01b03841660048201526024810183905260448101829052606401610e4d565b505050610e1d60015f80516020615f7b83398151915255565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6117eb81336133f1565b6118115760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b610e1d613a69565b6001600160a01b0381165f908152600e602090815260408083208151808301835281548152825160018301805460808188028401810190965260608301818152610ca6979496948701948492849184018282801561105b57602002820191905f5260205f20908154815260200190600101908083116110475750505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156110b157602002820191905f5260205f209081548152602001906001019080831161109d57505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561110757602002820191905f5260205f20908154815260200190600101908083116110f3575050505050815250508152505061349a565b611954613ac8565b61195d82613b6c565b6119678282613b9d565b5050565b611973613375565b61197b6133ac565b604051637125eda960e11b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__9063e24bdb52906119b4905f90859060040161573f565b5f6040518083038186803b1580156119ca575f80fd5b505af41580156119dc573d5f803e3d5ffd5b505060405163184d91f360e31b815273__$339bef8b42d49ef7fc0392a1b9554f9551$__925063c26c8f989150610ddb905f90859060040161573f565b610e1d604051806040016040528083803603810190611a389190615757565b81523360209091015261217a565b5f611a4f613c59565b505f80516020615f1b83398151915290565b611a69613375565b611a716133ac565b604080516325f2df6f60e01b81525f6004820152825151602482015260208301516001600160a01b03908116604483015291830151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__906325f2df6f906084015f6040518083038186803b158015611ae3575f80fd5b505af4158015611af5573d5f803e3d5ffd5b5050604080516330e78a9160e11b81525f6004820152845151602482015260208501516001600160a01b03908116604483015291850151909116606482015273__$c19cfa413da1baf02a2307c9fe3d8deda6$__92506361cf15229150608401610ddb565b611b62613375565b611b6a6133ac565b604051632d0c1e8b60e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__90632d0c1e8b90611ba3905f90859060040161573f565b5f6040518083038186803b158015611bb9575f80fd5b505af4158015611bcb573d5f803e3d5ffd5b505060405163c0c66ed960e01b815273__$f215670302542f95b8fc754ac02a4bfcb4$__925063c0c66ed99150610ddb905f90859060040161573f565b611c10614283565b5f80516020615f7b83398151915254600203611c3f57604051633ee5aeb560e01b815260040160405180910390fd5b604080516001600160a01b0384165f908152600e60209081529083902061016083018452805461012084019081528451600183018054608095810283018601909752606082018781529596879660a088019687959487946101408b01949193909284928491840182828015611cd157602002820191905f5260205f20905b815481526020019060010190808311611cbd575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d2757602002820191905f5260205f20905b815481526020019060010190808311611d13575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611d7d57602002820191905f5260205f20905b815481526020019060010190808311611d69575b505050505081525050815250508152602001600482016040518060400160405290815f8201548152602001600182016040518060600160405290815f8201805480602002602001604051908101604052809291908181526020018280548015611e0357602002820191905f5260205f20905b815481526020019060010190808311611def575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611e5957602002820191905f5260205f20905b815481526020019060010190808311611e45575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611eaf57602002820191905f5260205f20905b815481526020019060010190808311611e9b575b505050919092525050509052508152600882015460208083019190915260099092015460ff1615156040918201529183526001600160a01b0386811691840182905260165483516370a0823160e01b815260048101939093529390920192909116906370a0823190602401602060405180830381865afa158015611f35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5991906155d1565b8152601a546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa158015611fa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fcd91906155d1565b81526018546040516370a0823160e01b81526001600160a01b038681166004830152602090930192909116906370a0823190602401602060405180830381865afa15801561201d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061204191906155d1565b905290505b919050565b5f61205581613945565b612a315f612061613ca2565b8054909150600160401b900460ff1680612088575080546001600160401b03808416911610155b156120a65760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556120cf613cca565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b604051637574b6e360e01b81525f600482018190526001600160a01b0380871660248401526044830186905284166064830152608482018390529073__$fad1da84a532053b53119316a58e977f10$__90637574b6e39060a4016112f2565b612182613375565b61218a6133ac565b604051623fe27360e01b81525f6004820152815180516001600160a01b039081166024840152602091820151151560448401529083015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__90623fe273906084015f6040518083038186803b1580156121fb575f80fd5b505af415801561220d573d5f803e3d5ffd5b505060405163724e2b6f60e01b81525f6004820152835180516001600160a01b039081166024840152602091820151151560448401529085015116606482015273__$c6aecf0de9c97d330c260596cb45f01743$__925063724e2b6f9150608401610ddb565b61227b6142bd565b604051633978289f60e01b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90633978289f90604401602060405180830381865af41580156122cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122f391906155d1565b6040805160808101825282546001600160a01b0381168252600160a01b900460ff1615156020820152600183015491810191909152600290910154606082015292915050565b612341613375565b6123496133ac565b60405163da25f11760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__9063da25f11790612382905f908590600401615771565b5f6040518083038186803b158015612398575f80fd5b505af41580156123aa573d5f803e3d5ffd5b50506040516388fb1b6760e01b815273__$e9ef7182266124a833dac7dfa55fc79e51$__92506388fb1b679150610ddb905f908590600401615771565b6124146040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051636e9bc7eb60e11b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063dd378fd69060240160a060405180830381865af4158015612461573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615807565b604080518082019091525f8082526020820152604051631ae5e80160e31b81525f600482015273__$72c16261390208f563094e6a4fc9f74031$__9063d72f4008906024016040805180830381865af41580156124e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112929190615869565b612510613375565b6125186133ac565b6040516210aa0b60e31b815273__$45d7492db284be01938913cb41b9cac2a6$__90628550589061254f905f90859060040161589c565b5f6040518083038186803b158015612565575f80fd5b505af4158015612577573d5f803e3d5ffd5b50506040516364140a8360e01b815273__$45d7492db284be01938913cb41b9cac2a6$__92506364140a839150610ddb905f90859060040161589c565b6125bc613375565b6125c46133ac565b604051631e55c20b60e31b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9063f2ae1058906125fd905f90859060040161562f565b5f6040518083038186803b158015612613575f80fd5b505af4158015612625573d5f803e3d5ffd5b5050604051630f6470bd60e01b815273__$909b104b05b98ab9b02bd00c4a2f54926d$__9250630f6470bd9150612662905f90859060040161562f565b5f6040518083038186803b158015612678575f80fd5b505af415801561268a573d5f803e3d5ffd5b505050505f19815f0151602001510361156e578051516040516316bbd7db60e11b81525f60048201526001600160a01b03909116602482015273__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__90632d77afb690604401610ddb565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61271281336133f1565b6127385760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b610e1d613cda565b610e1d60405180604001604052808380360381019061275f91906158d4565b815233602090910152611584565b610e1d6040518060600160405280838152602001336001600160a01b03168152602001336001600160a01b0316815250611439565b5f9182525f80516020615f3b833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6127e06142ec565b60405163301d1d1560e21b815273__$c58e2605104bb31274ad8c04841b6a7550$__9063c074745490612819905f908690600401615323565b61012060405180830381865af4158015612835573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906158ee565b60606128636133ac565b6111255f8484613d22565b61289e60405180608001604052805f6001600160a01b031681526020015f81526020015f81526020015f81525090565b604051634c9829bf60e11b81525f60048201526024810183905273__$674c94602fbdb88ca53d9ba4295c8813fa$__90639930537e90604401602060405180830381865af41580156128f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061291691906155d1565b6040805160808101825282546001600160a01b0316815260018301546020820152600283015491810191909152600390910154606082015292915050565b6129816040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506001600160a01b03165f908152601b6020908152604091829020825160a0810184526006820154815260078201549281019290925260088101549282019290925260098201546060820152600a90910154608082015290565b60405163046dbd1360e11b81525f600482018190526001600160a01b03831660248301529073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__906308db7a2690604401602060405180830381865af4158015612a3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca691906155d1565b610e1d604051806040016040528083803603810190612a7d9190615950565b815233602090910152612339565b610e1d604051806040016040528083612aa3906155f3565b81523360209091015261196b565b612aba8261133a565b612ac381613945565b6113d583836139f0565b5f80612ad7613375565b612adf6133ac565b7ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab612b0a81336133f1565b612b305760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b604051639f53ee0f60e01b815273__$d00168f5747027b5a56099c751031d7e40$__90639f53ee0f90612b69905f9088906004016159d2565b5f6040518083038186803b158015612b7f575f80fd5b505af4158015612b91573d5f803e3d5ffd5b505060405163647a4b7560e11b815273__$d00168f5747027b5a56099c751031d7e40$__925063c8f496ea9150612bce905f9088906004016159d2565b6040805180830381865af4158015612be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c0c91906159e7565b909350915073__$b44e0fdf2f6bdeffc1681a5a467d23dde6$__632d77afb65f612c3c60408801602089016146a9565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f6040518083038186803b158015612c7f575f80fd5b505af4158015612c91573d5f803e3d5ffd5b5050604051636e6595c160e01b815273__$d00168f5747027b5a56099c751031d7e40$__9250636e6595c19150612cd0905f9088908890600401615a09565b5f6040518083038186803b158015612ce6575f80fd5b505af4158015612cf8573d5f803e3d5ffd5b5050505050612d1360015f80516020615f7b83398151915255565b915091565b5f612d21613375565b612d296133ac565b6040516320b5435f60e11b815273__$04d32033081e1e9356971d8f4b5098bcad$__9063416a86be90612d62905f908690600401615a2d565b5f6040518083038186803b158015612d78575f80fd5b505af4158015612d8a573d5f803e3d5ffd5b5050604051630d0699cb60e21b815273__$04d32033081e1e9356971d8f4b5098bcad$__925063341a672c9150612dc7905f908690600401615a2d565b602060405180830381865af4158015612de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e0691906155d1565b60405163489d188160e01b815290915073__$04d32033081e1e9356971d8f4b5098bcad$__9063489d188190612e44905f9086908690600401615a55565b5f6040518083038186803b158015612e5a575f80fd5b505af4158015612e6c573d5f803e3d5ffd5b5050505061204660015f80516020615f7b83398151915255565b610e1d604051806060016040528083803603810190612ea59190614590565b815233602082018190526040909101526125b4565b5f612ec3613ca2565b805490915060ff600160401b82041615906001600160401b03165f81158015612ee95750825b90505f826001600160401b03166001148015612f045750303b155b905081158015612f12575080155b15612f305760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315612f5a57845460ff60401b1916600160401b1785555b6040516369777eb960e01b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__906369777eb990612f9b905f908e908e908e908e908e90600401615ba4565b5f6040518083038186803b158015612fb1575f80fd5b505af4158015612fc3573d5f803e3d5ffd5b50505050612fcf613e0a565b612fd7613e0a565b612fdf613cca565b612fe7613e0a565b604051632ffdac7160e21b815273__$d02cb2608d6f3ad3f53f4dd3f26f81b8ea$__9063bff6b1c490613026905f908d908d908d908d90600401615c18565b5f6040518083038186803b15801561303c575f80fd5b505af415801561304e573d5f803e3d5ffd5b5050505061305e5f801b8b61394f565b506130897f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8b61394f565b506130b47ffc8737ab85eb45125971625a9ebdb75cc78e01d5c1fa80c4c6e5203f47bc4fab8b61394f565b506130df7f1eae1854c74a696c6de86fd3c6383d5c1e2c33fbc86e1aa6b6c872d95bd240388b61394f565b50831561312657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b61313a613375565b6131426133ac565b604051635792057f60e11b81525f60048201528135602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__9063af240afe906044015f6040518083038186803b158015613191575f80fd5b505af41580156131a3573d5f803e3d5ffd5b50506040516320e9b9f960e11b81525f60048201528335602482015273__$ebce6ba8505acc62d937fb713060c40a3c$__92506341d373f29150604401610ddb565b6131ed613375565b6131f56133ac565b604051631005beb160e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__9063802df5889061322e905f908590600401615c7c565b5f6040518083038186803b158015613244575f80fd5b505af4158015613256573d5f803e3d5ffd5b5050604051631cc17ae560e31b815273__$7947dedfaba9c59621bd8bcc87e3fb80f1$__925063e60bd7289150610ddb905f908590600401615c7c565b61329b613375565b6132a36133ac565b60405163024889b160e51b815273__$d49e499a4608ab3aca09b91fe5950492b6$__906349113620906132dc905f908590600401615c7c565b5f6040518083038186803b1580156132f2575f80fd5b505af4158015613304573d5f803e3d5ffd5b505060405163a083c0ab60e01b815273__$d49e499a4608ab3aca09b91fe5950492b6$__925063a083c0ab9150610ddb905f908590600401615c7c565b610e1d6040518060600160405280838036038101906133609190615cc1565b81523360208201819052604090910152611a61565b5f80516020615f7b8339815191528054600119016133a657604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f80516020615f5b8339815191525460ff16156133dc5760405163d93c066560e01b815260040160405180910390fd5b565b60015f80516020615f7b83398151915255565b5f6133fc83836127a2565b1561340957506001610ca6565b601c546001600160a01b031661342057505f610ca6565b601c54604051632474521560e21b8152600481018590526001600160a01b038481166024830152909116906391d1485490604401602060405180830381865afa15801561346f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134939190615cdb565b9050610ca6565b80515f90158015610ca65750610ca68260200151613e12565b6001600160a01b0382165f908152600e84016020908152604080832081518083018352815481528251600183018054608081880284018101909652606083018181526135f9978c978c979591870194919391928492909184919084018282801561353a57602002820191905f5260205f20905b815481526020019060010190808311613526575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561359057602002820191905f5260205f20905b81548152602001906001019080831161357c575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156135e657602002820191905f5260205f20905b8154815260200190600101908083116135d2575b5050505050815250508152505085613e38565b949350505050565b5f61112583600c015f015f9054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613659573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061367d91906155d1565b61368890600a615dea565b6136929084615df5565b60148501546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa1580156136dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137009190615e0c565b61370b90600a615e2c565b60158601546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa158015613755573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137799190615e0c565b61378490600a615e2c565b600c87015460408051634c6afee560e11b815290516001600160a01b03909216916398d5fdca916004808201926020929091908290030181865afa1580156137ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137f291906155d1565b6137fc9190615df5565b613f92565b6001600160a01b0382165f908152600e840160209081526040808320815180830183526004820180548252835160059093018054608081880286018101909652606085018181526135f9978c978c9791870194919391928492909184919084018282801561353a57602002820191905f5260205f209081548152602001906001019080831161352657505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561359057602002820191905f5260205f209081548152602001906001019080831161357c5750505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156135e657602002820191905f5260205f20908154815260200190600101908083116135d2575050505050815250508152505085613e38565b610e1d8133613f9e565b5f5f80516020615f3b83398151915261396884846127a2565b6139e7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561399d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610ca6565b5f915050610ca6565b5f5f80516020615f3b833981519152613a0984846127a2565b156139e7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610ca6565b613a71613fd7565b5f80516020615f5b833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613b4e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613b425f80516020615f1b833981519152546001600160a01b031690565b6001600160a01b031614155b156133dc5760405163703e46dd60e11b815260040160405180910390fd5b5f613b7781336133f1565b6119675760405163e2517d3f60e01b815233600482015260248101829052604401610e4d565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613bf7575060408051601f3d908101601f19168201909252613bf4918101906155d1565b60015b613c1f57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610e4d565b5f80516020615f1b8339815191528114613c4f57604051632a87526960e21b815260048101829052602401610e4d565b61140e8383614006565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146133dc5760405163703e46dd60e11b815260040160405180910390fd5b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610ca6565b613cd261405b565b6133dc614080565b613ce26133ac565b5f80516020615f5b833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833613aaa565b6060816001600160401b03811115613d3c57613d3c6143b7565b604051908082528060200260200182016040528015613d6f57816020015b6060815260200190600190039081613d5a5790505b5090505f5b82811015613e0257613ddd30858584818110613d9257613d92615e3a565b9050602002810190613da49190615e4e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061408892505050565b828281518110613def57613def615e3a565b6020908102919091010152600101613d74565b509392505050565b6133dc61405b565b8051515f90158015613e275750602082015151155b8015610ca657505060400151511590565b5f815f03613e59576040516301c85f6760e71b815260040160405180910390fd5b613e628361349a565b15613e8a5760405162b04ee160e61b81526001600160a01b0385166004820152602401610e4d565b8251613e968342615e97565b1115613eca57613ea68242615e97565b8351604051636f2f16a760e01b815260048101929092526024820152604401610e4d565b60408051606081018252600d8701546001600160801b03811682526001600160401b03600160801b82048116602080850191909152600160c01b909204168284015285015191516315c6891560e11b8152909173__$99c8b6d537f6911e4d5e2b5618b4ddcec4$__91632b8d122a91613f499185908890600401615eaa565b602060405180830381865af4158015613f64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f8891906155d1565b9695505050505050565b5f6135f98484846140f1565b613fa882826127a2565b6119675760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610e4d565b5f80516020615f5b8339815191525460ff166133dc57604051638dfc202b60e01b815260040160405180910390fd5b61400f8261411d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156140535761140e8282614088565b611967614180565b61406361419f565b6133dc57604051631afcd79f60e31b815260040160405180910390fd5b6133de61405b565b60605f80846001600160a01b0316846040516140a49190615eff565b5f60405180830381855af49150503d805f81146140dc576040519150601f19603f3d011682016040523d82523d5f602084013e6140e1565b606091505b50915091506113318583836141b8565b5f825f19048411830215820261410e5763ad251c275f526004601cfd5b50910281810615159190040190565b806001600160a01b03163b5f0361415257604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610e4d565b5f80516020615f1b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b34156133dc5760405163b398979f60e01b815260040160405180910390fd5b5f6141a8613ca2565b54600160401b900460ff16919050565b6060826141cd576141c882614214565b611125565b81511580156141e457506001600160a01b0384163b155b1561420d57604051639996b31560e01b81526001600160a01b0385166004820152602401610e4d565b5080611125565b8051156142245780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6040518060e001604052806142506142bd565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060a00160405280614296614323565b81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b60405180608001604052805f6001600160a01b031681526020015f151581526020015f81526020015f81525090565b6040518060c001604052806142ff6142bd565b81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6040518060800160405280614336614356565b8152602001614343614356565b81525f6020820181905260409091015290565b60405180604001604052805f815260200161438b60405180606001604052806060815260200160608152602001606081525090565b905290565b5f602082840312156143a0575f80fd5b81356001600160e01b031981168114611125575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405161012081016001600160401b03811182821017156143ee576143ee6143b7565b60405290565b604051608081016001600160401b03811182821017156143ee576143ee6143b7565b604080519081016001600160401b03811182821017156143ee576143ee6143b7565b604051606081016001600160401b03811182821017156143ee576143ee6143b7565b60405160a081016001600160401b03811182821017156143ee576143ee6143b7565b60405160c081016001600160401b03811182821017156143ee576143ee6143b7565b604051601f8201601f191681016001600160401b03811182821017156144c6576144c66143b7565b604052919050565b6001600160a01b0381168114610e1d575f80fd5b8035612046816144ce565b8015158114610e1d575f80fd5b8035612046816144ed565b5f6101208284031215614516575f80fd5b61451e6143cb565b9050614529826144e2565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015261456960c083016144fa565b60c082015260e082013560e08201526101006145868184016144e2565b9082015292915050565b5f61012082840312156145a1575f80fd5b6111258383614505565b80516001600160a01b0316825260208082015115159083015260408082015190830152606090810151910152565b5f610140820190506145ec8284516145ab565b60018060a01b036020840151166080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015260c083015161012083015292915050565b5f60608284031215614648575f80fd5b50919050565b5f6060828403121561465e575f80fd5b6111258383614638565b5f60408284031215614648575f80fd5b5f60208284031215614688575f80fd5b81356001600160401b0381111561469d575f80fd5b6135f984828501614668565b5f602082840312156146b9575f80fd5b8135611125816144ce565b60a08101610ca6828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5f806040838503121561470e575f80fd5b8235614719816144ce565b946020939093013593505050565b5f6001600160401b0382111561473f5761473f6143b7565b5060051b60200190565b5f82601f830112614758575f80fd5b8135602061476d61476883614727565b61449e565b8083825260208201915060208460051b87010193508684111561478e575f80fd5b602086015b848110156147aa5780358352918301918301614793565b509695505050505050565b5f608082840312156147c5575f80fd5b6147cd6143f4565b90508135815260208201356147e1816144ed565b602082015260408201356147f4816144ed565b604082015260608201356001600160401b03811115614811575f80fd5b61481d84828501614749565b60608301525092915050565b5f60208284031215614839575f80fd5b81356001600160401b038082111561484f575f80fd5b9083019060408286031215614862575f80fd5b61486a614416565b823582811115614878575f80fd5b614884878286016147b5565b82525060208301359250614897836144ce565b6020810192909252509392505050565b5f602082840312156148b7575f80fd5b5035919050565b5f805f80608085870312156148d1575f80fd5b84356148dc816144ce565b93506020850135925060408501356148f3816144ce565b9396929550929360600135925050565b5f60208284031215614913575f80fd5b81356001600160401b03811115614928575f80fd5b820160808185031215611125575f80fd5b5f806040838503121561494a575f80fd5b82359150602083013561495c816144ce565b809150509250929050565b5f6101608284031215614978575f80fd5b614980614438565b905061498c8383614505565b815261012082013561499d816144ce565b60208201526101408201356149b1816144ce565b604082015292915050565b5f61016082840312156149cd575f80fd5b6111258383614967565b5f606082840312156149e7575f80fd5b6149ef614438565b905081358152602082013560208201526040820135604082015292915050565b5f60808284031215614a1f575f80fd5b614a27614416565b614a3184846149d7565b81526060830135614a41816144ce565b60208201529392505050565b5f8060408385031215614a5e575f80fd5b8235614a69816144ce565b91506020838101356001600160401b0380821115614a85575f80fd5b818601915086601f830112614a98575f80fd5b813581811115614aaa57614aaa6143b7565b614abc601f8201601f1916850161449e565b91508082528784828501011115614ad1575f80fd5b80848401858401375f848284010152508093505050509250929050565b5f60408284031215614afe575f80fd5b614b06614416565b9050813581526020808301356001600160401b0380821115614b26575f80fd5b9084019060608287031215614b39575f80fd5b614b41614438565b823582811115614b4f575f80fd5b614b5b88828601614749565b8252508383013582811115614b6e575f80fd5b8301601f81018813614b7e575f80fd5b8035614b8c61476882614727565b81815260059190911b8201860190868101908a831115614baa575f80fd5b928701925b82841015614bc857833582529287019290870190614baf565b84880152505050604083013582811115614be0575f80fd5b614bec88828601614749565b60408301525080848601525050505092915050565b5f60408284031215614c11575f80fd5b614c19614416565b905081356001600160401b03811115614c30575f80fd5b614c3c84828501614aee565b8252506020820135614c4d816144ce565b602082015292915050565b5f60208284031215614c68575f80fd5b81356001600160401b03811115614c7d575f80fd5b6135f984828501614c01565b5f60408284031215614c99575f80fd5b6111258383614668565b5f60208284031215614cb3575f80fd5b604051602081018181106001600160401b0382111715614cd557614cd56143b7565b6040529135825250919050565b5f60608284031215614cf2575f80fd5b614cfa614438565b614d048484614ca3565b81526020830135614d14816144ce565b60208201526040830135614d27816144ce565b60408201529392505050565b5f5b83811015614d4d578181015183820152602001614d35565b50505f910152565b5f8151808452614d6c816020860160208601614d33565b601f01601f19169290920160200192915050565b602081525f6111256020830184614d55565b5f815180845260208085019450602084015f5b83811015614dc157815187529582019590820190600101614da5565b509495945050505050565b805182525f602080830151604082860152805160606040870152614df360a0870182614d92565b83830151603f19888303810160608a0152815180845291860193505f929091908601905b80841015614e375784518252938601936001939093019290860190614e17565b5060408501519550818982030160808a0152614e538187614d92565b9998505050505050505050565b602081525f825160a060208401528051608060c0850152614e85610140850182614dcc565b9050602082015160bf198583030160e0860152614ea28282614dcc565b91505060408201516101008501526060820151151561012085015260208501519150614ed960408501836001600160a01b03169052565b6040850151606085015260608501516080850152608085015160a0850152809250505092915050565b5f60408284031215614f12575f80fd5b614f1a614416565b90508135614f27816144ce565b81526020820135614c4d816144ed565b5f60608284031215614f47575f80fd5b614f4f614416565b614f598484614f02565b81526040830135614a41816144ce565b60808101610ca682846145ab565b5f60a08284031215614f87575f80fd5b614f8f61445a565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b5f6101408284031215614fd4575f80fd5b614fdc614416565b9050614fe88383614f77565b8152614c4d8360a08401614f77565b5f6101608284031215615008575f80fd5b615010614416565b61501a8484614fc3565b8152610140830135614a41816144ce565b5f6101208201905061503e8284516145ab565b60208301516080830152604083015160a0830152606083015160c0830152608083015160e083015260a083015161010083015292915050565b5f8060208385031215615088575f80fd5b82356001600160401b038082111561509e575f80fd5b818501915085601f8301126150b1575f80fd5b8135818111156150bf575f80fd5b8660208260051b85010111156150d3575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561513a57603f19888603018452615128858351614d55565b9450928501929085019060010161510c565b5092979650505050505050565b5f6101408284031215614648575f80fd5b5f60e08284031215614648575f80fd5b5f6101208284031215614648575f80fd5b5f60c08284031215614648575f80fd5b5f805f805f85870361028081121561519f575f80fd5b86356151aa816144ce565b95506151b98860208901615179565b945060a060df19820112156151cc575f80fd5b5060e0860192506151e1876101808801614668565b91506151f1876101c08801615179565b90509295509295909350565b5f60208284031215614648575f80fd5b5f6020828403121561521d575f80fd5b61112583836151fd565b5f60608284031215615237575f80fd5b61523f614438565b9050813561524c816144ce565b81526020828101359082015260408201356149b1816144ce565b5f60808284031215615276575f80fd5b61527e614416565b905061528a8383615227565b81526060820135614c4d816144ce565b5f608082840312156152aa575f80fd5b6111258383615266565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c0810151151560c083015260e081015160e0830152610100808201516113d5828501826001600160a01b03169052565b828152610140810161112560208301846152b4565b5f60808284031215615348575f80fd5b6153506143f4565b9050815161535d816144ce565b8152602082015161536d816144ed565b80602083015250604082015160408201526060820151606082015292915050565b5f610140828403121561539f575f80fd5b60405160e081018181106001600160401b03821117156153c1576153c16143b7565b6040526153ce8484615338565b815260808301516153de816144ce565b8060208301525060a0830151604082015260c0830151606082015260e0830151608082015261010083015160a082015261012083015160c08201528091505092915050565b5f6080820190508382528235602083015260208301356040830152604083013561544c816144ce565b6001600160a01b03166060929092019190915292915050565b828152604060208201525f8235601e19843603018112615483575f80fd5b83016020810190356001600160401b0381111561549e575f80fd5b8036038213156154ac575f80fd5b604080850152806080850152808260a08601375f60a082860101526020850135606085015260a0601f19601f830116850101925050509392505050565b5f606082840312156154f9575f80fd5b6111258383615227565b828152604060208201525f8251604080840152805160808401526020810151151560a08401526040810151151560c084015260608101519050608060e0840152615551610100840182614d92565b602094909401516001600160a01b031660609390930192909252509092915050565b5f60c08284031215615583575f80fd5b61558b61447c565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a08301516155c5816144ce565b60a08201529392505050565b5f602082840312156155e1575f80fd5b5051919050565b5f610ca636836147b5565b5f610ca63683614aee565b6156098282516152b4565b60208101516001600160a01b039081166101208401526040909101511661014090910152565b828152610180810161112560208301846155fe565b918252805180516020808501919091528082015160408086019190915290910151606084015201516001600160a01b0316608082015260a00190565b5f8151606084526156946060850182614d92565b602084810151868303878301528051808452908201935090915f91908301905b808310156156d457845182529383019360019290920191908301906156b4565b506040860151935086810360408801526156ee8185614d92565b979650505050505050565b5f8151604084528051604085015260208101519050604060608501526157226080850182615680565b6020938401516001600160a01b0316949093019390935250919050565b828152604060208201525f6135f960408301846156f9565b5f60408284031215615767575f80fd5b6111258383614f02565b5f6101808201905083825282516157b760208401825180518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602090810151805160c08501528082015160e0850152604081015161010085015260608101516101208501526080015161014084015292909201516001600160a01b031661016090910152919050565b5f60a08284031215615817575f80fd5b61581f61445a565b82518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b6001600160401b0381168114610e1d575f80fd5b5f60408284031215615879575f80fd5b615881614416565b825161588c816144ce565b81526020830151614a4181615855565b5f6060820190508382528235602083015260208301356158bb816144ce565b6001600160a01b03166040929092019190915292915050565b5f606082840312156158e4575f80fd5b61112583836149d7565b5f61012082840312156158ff575f80fd5b61590761447c565b6159118484615338565b81526080830151602082015260a0830151604082015260c0830151606082015260e0830151608082015261010083015160a08201528091505092915050565b5f6101408284031215615961575f80fd5b6111258383614fc3565b80358252602081013561597d816144ce565b6001600160a01b03908116602084015260408281013590840152606080830135908401526080808301359084015260a0828101359084015260c0820135906159c4826144ce565b80821660c085015250505050565b8281526101008101611125602083018461596b565b5f80604083850312156159f8575f80fd5b505080516020909101519092909150565b8381526101208101615a1e602083018561596b565b82610100830152949350505050565b8281526080810161112560208301848035825260208082013590830152604090810135910152565b83815260a08101615a7d60208301858035825260208082013590830152604090810135910152565b826080830152949350505050565b803582526020810135602083015260408101356040830152606081013560608301526080810135608083015260a0810135615ac5816144ce565b6001600160a01b031660a0929092019190915250565b8035615ae6816144ce565b6001600160a01b031682526020810135615aff81615855565b6001600160401b0381166020840152505050565b8035615b1e816144ce565b6001600160a01b039081168352602082013590615b3a826144ce565b9081166020840152604082013590615b51826144ce565b9081166040840152606082013590615b68826144ce565b9081166060840152608082013590615b7f826144ce565b908116608084015260a082013590615b96826144ce565b80821660a085015250505050565b8681526001600160a01b03861660208201526102a08101615bc86040830187615a8b565b84356101008301526020850135610120830152604085013561014083015260608501356101608301526080850135610180830152615c0a6101a0830185615adb565b6156ee6101e0830184615b13565b8581526102808101615c2d6020830187615a8b565b843560e08301526020850135610100830152604085013561012083015260608501356101408301526080850135610160830152615c6e610180830185615adb565b613f886101c0830184615b13565b82815260a081016111256020830184805180516001600160a01b0390811684526020808301518186015260409283015182169285019290925291015116606090910152565b5f60208284031215615cd1575f80fd5b6111258383614ca3565b5f60208284031215615ceb575f80fd5b8151611125816144ed565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115615d4457815f1904821115615d2a57615d2a615cf6565b80851615615d3757918102915b93841c9390800290615d0f565b509250929050565b5f82615d5a57506001610ca6565b81615d6657505f610ca6565b8160018114615d7c5760028114615d8657615da2565b6001915050610ca6565b60ff841115615d9757615d97615cf6565b50506001821b610ca6565b5060208310610133831016604e8410600b8410161715615dc5575081810a610ca6565b615dcf8383615d0a565b805f1904821115615de257615de2615cf6565b029392505050565b5f6111258383615d4c565b8082028115828204841417610ca657610ca6615cf6565b5f60208284031215615e1c575f80fd5b815160ff81168114611125575f80fd5b5f61112560ff841683615d4c565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112615e63575f80fd5b8301803591506001600160401b03821115615e7c575f80fd5b602001915036819003821315615e90575f80fd5b9250929050565b80820180821115610ca657610ca6615cf6565b60a081525f615ebc60a0830186615680565b90506001600160801b03845116602083015260208401516001600160401b0380821660408501528060408701511660608501525050826080830152949350505050565b5f8251615f10818460208701614d33565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212202f00eae29f053452eb8ca6b1a62479f5b4f9da7c8be240bf9d6a98d9297f827a64736f6c63430008170033"; type SizeConstructorParams = | [linkLibraryAddresses: SizeLibraryAddresses, signer?: Signer] diff --git a/src/v1.8/types/ethers-contracts/factories/index.ts b/src/v1.8/types/ethers-contracts/factories/index.ts index 77d0308..b9afe0f 100644 --- a/src/v1.8/types/ethers-contracts/factories/index.ts +++ b/src/v1.8/types/ethers-contracts/factories/index.ts @@ -1,8 +1,7 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -export * as draftIerc6093Sol from "./draft-IERC6093.sol"; +export { CollectionsManager__factory } from "./CollectionsManager__factory"; export { Errors__factory } from "./Errors__factory"; -export { Events__factory } from "./Events__factory"; export { Size__factory } from "./Size__factory"; export { SizeFactory__factory } from "./SizeFactory__factory"; diff --git a/src/v1.8/types/ethers-contracts/index.ts b/src/v1.8/types/ethers-contracts/index.ts index c6a4266..5a6d7c1 100644 --- a/src/v1.8/types/ethers-contracts/index.ts +++ b/src/v1.8/types/ethers-contracts/index.ts @@ -1,16 +1,12 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import type * as draftIerc6093Sol from "./draft-IERC6093.sol"; -export type { draftIerc6093Sol }; +export type { CollectionsManager } from "./CollectionsManager"; export type { Errors } from "./Errors"; -export type { Events } from "./Events"; export type { Size } from "./Size"; export type { SizeFactory } from "./SizeFactory"; export * as factories from "./factories"; +export { CollectionsManager__factory } from "./factories/CollectionsManager__factory"; +export { Errors__factory } from "./factories/Errors__factory"; export { Size__factory } from "./factories/Size__factory"; export { SizeFactory__factory } from "./factories/SizeFactory__factory"; -export { Errors__factory } from "./factories/Errors__factory"; -export { Events__factory } from "./factories/Events__factory"; -export type { IERC20Errors } from "./draft-IERC6093.sol/IERC20Errors"; -export { IERC20Errors__factory } from "./factories/draft-IERC6093.sol/IERC20Errors__factory"; diff --git a/test/v1_8.test.ts b/test/v1_8.test.ts index b22d4ff..e37882f 100644 --- a/test/v1_8.test.ts +++ b/test/v1_8.test.ts @@ -1,3 +1,8 @@ +// Teach JSON.stringify how to handle BigInt for Jest serialization +(BigInt.prototype as any).toJSON = function() { + return this.toString(); +}; + import { JSDOM } from "jsdom"; import { describe, expect, test, beforeAll } from "@jest/globals"; import SDK from "../src"; @@ -5,6 +10,7 @@ import { BigNumber, ethers } from "ethers"; import Authorization, { Action } from "../src/Authorization"; import SizeABI from "../src/v1.8/abi/Size.json"; import SizeFactoryABI from "../src/v1.8/abi/SizeFactory.json"; +import ErrorsABI from "../src/v1.8/abi/Errors.json"; import ERC20ABI from "../src/erc20/abi/ERC20.json"; describe("@sizecredit/sdk v1.8", () => { @@ -26,6 +32,7 @@ describe("@sizecredit/sdk v1.8", () => { const ISize = new ethers.utils.Interface(SizeABI.abi); const ISizeFactory = new ethers.utils.Interface(SizeFactoryABI.abi); + const IErrors = new ethers.utils.Interface(ErrorsABI.abi); const IERC20 = new ethers.utils.Interface(ERC20ABI.abi); beforeAll(() => { @@ -327,4 +334,201 @@ describe("@sizecredit/sdk v1.8", () => { "[@sizecredit/sdk] no operations to execute", ); }); + + // v1.8.1 tests - new functions and error types + test("v1.8.1 - Size interface should have new isUserDefinedBorrowOfferNull function", () => { + const functionFragment = ISize.getFunction("isUserDefinedBorrowOfferNull"); + expect(functionFragment).toBeDefined(); + expect(functionFragment.name).toBe("isUserDefinedBorrowOfferNull"); + expect(functionFragment.inputs.length).toBe(1); + expect(functionFragment.inputs[0].type).toBe("address"); + }); + + test("v1.8.1 - Size interface should have new isUserDefinedLoanOfferNull function", () => { + const functionFragment = ISize.getFunction("isUserDefinedLoanOfferNull"); + expect(functionFragment).toBeDefined(); + expect(functionFragment.name).toBe("isUserDefinedLoanOfferNull"); + expect(functionFragment.inputs.length).toBe(1); + expect(functionFragment.inputs[0].type).toBe("address"); + }); + + test("v1.8.1 - Size interface should not have removed getPositionsCount function", () => { + expect(() => ISize.getFunction("getPositionsCount")).toThrow(); + }); + + test("v1.8.1 - Size interface should not have removed setVariablePoolBorrowRate function", () => { + expect(() => ISize.getFunction("setVariablePoolBorrowRate")).toThrow(); + }); + + test("v1.8.1 - Size interface should not have removed isDebtPositionLiquidatable function", () => { + expect(() => ISize.getFunction("isDebtPositionLiquidatable")).toThrow(); + }); + + test("v1.8.1 - error decoder should decode INVALID_OFFER_CONFIGS error", () => { + // INVALID_OFFER_CONFIGS has 8 parameters + const errorData = IErrors.encodeErrorResult("INVALID_OFFER_CONFIGS", [ + 1000, 5000, 100, 500, 2000, 6000, 150, 600, + ]); + const decoded = sdk.errorDecoder.decode(errorData); + expect(decoded).toContain("INVALID_OFFER_CONFIGS"); + expect(decoded).toContain("1000"); + expect(decoded).toContain("5000"); + }); + + test("v1.8.1 - error decoder should decode PAUSED_MARKET error", () => { + const errorData = IErrors.encodeErrorResult("PAUSED_MARKET", [market1]); + const decoded = sdk.errorDecoder.decode(errorData); + expect(decoded).toContain("PAUSED_MARKET"); + expect(decoded).toContain(market1.toLowerCase()); + }); + + test("v1.8.1 - error decoder should not decode removed MISMATCHED_CURVES error", () => { + expect(() => { + IErrors.encodeErrorResult("MISMATCHED_CURVES", [alice, 1000, 500, 600]); + }).toThrow(); + }); + + test("v1.8.1 - setUserCollectionCopyLimitOrderConfigs should build transaction", () => { + const copyLoanOfferConfig = { + minTenor: 86400, + maxTenor: 31536000, + minAPR: 100, + maxAPR: 5000, + offsetAPR: 0, + }; + const copyBorrowOfferConfig = { + minTenor: 0, + maxTenor: 0, + minAPR: 0, + maxAPR: 0, + offsetAPR: 0, + }; + + const txs = sdk.tx.build(alice, [ + sdk.factory.setUserCollectionCopyLimitOrderConfigs([ + 31415, + copyLoanOfferConfig, + copyBorrowOfferConfig, + ]), + ]); + + expect(txs.length).toBe(1); + expect(txs[0].target).toBe(sizeFactory); + expect(txs[0].data).toContain( + sdk.helpers.selector( + ISizeFactory, + "setUserCollectionCopyLimitOrderConfigs", + ), + ); + }); + + test("v1.8.1 - error decoder should decode ERC20 errors from new IERC20Errors ABI", () => { + // Test ERC20InsufficientBalance + const IERC20ErrorsV1_8 = new ethers.utils.Interface([ + "error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)", + ]); + const errorData = IERC20ErrorsV1_8.encodeErrorResult( + "ERC20InsufficientBalance", + [alice, 100, 200], + ); + const decoded = sdk.errorDecoder.decode(errorData); + expect(decoded).toContain("ERC20InsufficientBalance"); + expect(decoded).toContain(alice.toLowerCase()); + expect(decoded).toContain("100"); + expect(decoded).toContain("200"); + }); + + test("v1.8.1 - error decoder should decode ERC721 errors from new IERC721Errors ABI", () => { + // Test ERC721InvalidOwner + const IERC721ErrorsV1_8 = new ethers.utils.Interface([ + "error ERC721InvalidOwner(address owner)", + ]); + const errorData = IERC721ErrorsV1_8.encodeErrorResult( + "ERC721InvalidOwner", + [alice], + ); + const decoded = sdk.errorDecoder.decode(errorData); + expect(decoded).toContain("ERC721InvalidOwner"); + expect(decoded).toContain(alice.toLowerCase()); + }); + + test("v1.8.1 - ERC20 error", () => { + const error = '0xe450d38c000000000000000000000000ed5f3300c21b37f16267981d80cd01ec883a7822000000000000000000000000000000000000000000000000000000003bb1642a000000000000000000000000000000000000000000000000000000003bb1642c' + const decoded = sdk.errorDecoder.decode(error); + expect(decoded).toEqual("ERC20InsufficientBalance(0xeD5F3300C21B37f16267981D80CD01Ec883a7822,1001481258,1001481260)"); + }); + + test("v1.8.1 - error decoder should decode ERC1155 errors from new IERC1155Errors ABI", () => { + // Test ERC1155InsufficientBalance + const IERC1155ErrorsV1_8 = new ethers.utils.Interface([ + "error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId)", + ]); + const errorData = IERC1155ErrorsV1_8.encodeErrorResult( + "ERC1155InsufficientBalance", + [alice, 50, 100, 1], + ); + const decoded = sdk.errorDecoder.decode(errorData); + expect(decoded).toContain("ERC1155InsufficientBalance"); + expect(decoded).toContain(alice.toLowerCase()); + expect(decoded).toContain("50"); + expect(decoded).toContain("100"); + expect(decoded).toContain("1"); + }); + + test("v1.8.1 ideal flow", async () => { + const txs = sdk.tx.build(alice, [ + sdk.market.setVault(market2, { + vault: "0x000000000000000000000000000000000000eeee", + forfeitOldShares: false, + }), + sdk.market.deposit(market1, { + amount: BigNumber.from(100), + to: "0x0000000000000000000000000000000000001337", + token: "0x4200000000000000000000000000000000000006", + }), + sdk.factory.subscribeToCollections([42n]), + sdk.factory.setUserCollectionCopyLimitOrderConfigs([42n, sdk.constants.FullCopy, sdk.constants.NoCopy]), + ]); + expect(txs.length).toBe(1); + expect(txs[0].target).toBe(sizeFactory); + expect(txs[0].data).toContain( + sdk.helpers.selector("setAuthorization(address,uint256)"), + ); + const iface = new ethers.utils.Interface([ + "function setAuthorization(address,uint256)", + ]); + const auth = iface.encodeFunctionData("setAuthorization", [ + sizeFactory, + Authorization.getActionsBitmap([ + Action.SET_VAULT, + Action.DEPOSIT + ]).toString(), + ]); + expect(txs[0].data).toContain(auth.substring(2)); + expect(txs[0].data).toContain( + sdk.helpers.selector( + "depositOnBehalfOf(((address,uint256,address),address))", + ), + ); + expect(txs[0].data).not.toContain( + sdk.helpers.selector("deposit((address,uint256,address))"), + ); + expect(txs[0].data).toContain( + sdk.helpers.selector( + "subscribeToCollections(uint256[])", + ), + ); + expect(txs[0].data).toContain( + sdk.helpers.selector( + "setUserCollectionCopyLimitOrderConfigs(uint256,(uint256,uint256,uint256,uint256,int256),(uint256,uint256,uint256,uint256,int256))", + ), + ); + expect(txs[0].data).toContain( + sdk.helpers.selector(ISizeFactory, "callMarket"), + ); + expect(txs[0].data).toContain(sdk.helpers.selector(ISize, "multicall")); + expect(txs[0].data).toBe( + "0xac9650d80000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000005e0000000000000000000000000000000000000000000000000000000000000004491c769ce000000000000000000000000000000000000000000000000000000000000ffff00000000000000000000000000000000000000000000000000000000000004010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e45ec4954400000000000000000000000000000000000000000000000000000000000004560000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006475829a36000000000000000000000000000000000000000000000000000000000000eeee00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001045ec49544000000000000000000000000000000000000000000000000000000000000012300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084fa823af5000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000001337000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064c8fb624700000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001646ed41835000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004491c769ce000000000000000000000000000000000000000000000000000000000000ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + ); + }); });